From 6a928bbcc94ee510203ba7fc8b38a4bafe2c49ca Mon Sep 17 00:00:00 2001 From: GitHub Date: Fri, 4 Sep 2026 03:01:14 +0000 Subject: [PATCH] chore(update): bump openapi schema (2026-09-04) --- client_mock.go | 39 +++++++++++++++++++++--------- handler/account/account.go | 10 ++++++-- handler/accountteam/accountteam.go | 5 +++- handler/project/project.go | 19 +++++++++++++-- handler/service/service.go | 35 ++++++++++++++++++++++++--- handler/user/user.go | 5 +++- 6 files changed, 91 insertions(+), 22 deletions(-) diff --git a/client_mock.go b/client_mock.go index 5d8d39a..407a2bb 100644 --- a/client_mock.go +++ b/client_mock.go @@ -5841,8 +5841,14 @@ func (_c *MockClient_ListPublicServiceTypes_Call) RunAndReturn(run func(ctx cont } // ListServiceVersions provides a mock function for the type MockClient -func (_mock *MockClient) ListServiceVersions(ctx context.Context) ([]service.ServiceVersionOut, error) { - ret := _mock.Called(ctx) +func (_mock *MockClient) ListServiceVersions(ctx context.Context, query ...[2]string) ([]service.ServiceVersionOut, error) { + var tmpRet mock.Arguments + if len(query) > 0 { + tmpRet = _mock.Called(ctx, query) + } else { + tmpRet = _mock.Called(ctx) + } + ret := tmpRet if len(ret) == 0 { panic("no return value specified for ListServiceVersions") @@ -5850,18 +5856,18 @@ func (_mock *MockClient) ListServiceVersions(ctx context.Context) ([]service.Ser var r0 []service.ServiceVersionOut var r1 error - if returnFunc, ok := ret.Get(0).(func(context.Context) ([]service.ServiceVersionOut, error)); ok { - return returnFunc(ctx) + if returnFunc, ok := ret.Get(0).(func(context.Context, ...[2]string) ([]service.ServiceVersionOut, error)); ok { + return returnFunc(ctx, query...) } - if returnFunc, ok := ret.Get(0).(func(context.Context) []service.ServiceVersionOut); ok { - r0 = returnFunc(ctx) + if returnFunc, ok := ret.Get(0).(func(context.Context, ...[2]string) []service.ServiceVersionOut); ok { + r0 = returnFunc(ctx, query...) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]service.ServiceVersionOut) } } - if returnFunc, ok := ret.Get(1).(func(context.Context) error); ok { - r1 = returnFunc(ctx) + if returnFunc, ok := ret.Get(1).(func(context.Context, ...[2]string) error); ok { + r1 = returnFunc(ctx, query...) } else { r1 = ret.Error(1) } @@ -5875,18 +5881,27 @@ type MockClient_ListServiceVersions_Call struct { // ListServiceVersions is a helper method to define mock.On call // - ctx context.Context -func (_e *MockClient_Expecter) ListServiceVersions(ctx interface{}) *MockClient_ListServiceVersions_Call { - return &MockClient_ListServiceVersions_Call{Call: _e.mock.On("ListServiceVersions", ctx)} +// - query ...[2]string +func (_e *MockClient_Expecter) ListServiceVersions(ctx interface{}, query ...interface{}) *MockClient_ListServiceVersions_Call { + return &MockClient_ListServiceVersions_Call{Call: _e.mock.On("ListServiceVersions", + append([]interface{}{ctx}, query...)...)} } -func (_c *MockClient_ListServiceVersions_Call) Run(run func(ctx context.Context)) *MockClient_ListServiceVersions_Call { +func (_c *MockClient_ListServiceVersions_Call) Run(run func(ctx context.Context, query ...[2]string)) *MockClient_ListServiceVersions_Call { _c.Call.Run(func(args mock.Arguments) { var arg0 context.Context if args[0] != nil { arg0 = args[0].(context.Context) } + var arg1 [][2]string + var variadicArgs [][2]string + if len(args) > 1 { + variadicArgs = args[1].([][2]string) + } + arg1 = variadicArgs run( arg0, + arg1..., ) }) return _c @@ -5897,7 +5912,7 @@ func (_c *MockClient_ListServiceVersions_Call) Return(serviceVersionOuts []servi return _c } -func (_c *MockClient_ListServiceVersions_Call) RunAndReturn(run func(ctx context.Context) ([]service.ServiceVersionOut, error)) *MockClient_ListServiceVersions_Call { +func (_c *MockClient_ListServiceVersions_Call) RunAndReturn(run func(ctx context.Context, query ...[2]string) ([]service.ServiceVersionOut, error)) *MockClient_ListServiceVersions_Call { _c.Call.Return(run) return _c } diff --git a/handler/account/account.go b/handler/account/account.go index 0287a4a..b612a6f 100644 --- a/handler/account/account.go +++ b/handler/account/account.go @@ -563,11 +563,13 @@ const ( MemberTypeOrganizationBillingWrite MemberType = "organization:billing:write" MemberTypeOrganizationDomainsWrite MemberType = "organization:domains:write" MemberTypeOrganizationEventLogsRead MemberType = "organization:event_logs:read" + MemberTypeOrganizationGroupsRead MemberType = "organization:groups:read" MemberTypeOrganizationGroupsWrite MemberType = "organization:groups:write" MemberTypeOrganizationNetworkingRead MemberType = "organization:networking:read" MemberTypeOrganizationNetworkingWrite MemberType = "organization:networking:write" MemberTypeOrganizationProjectsWrite MemberType = "organization:projects:write" MemberTypeOrganizationSustainabilityRead MemberType = "organization:sustainability:read" + MemberTypeOrganizationUsersRead MemberType = "organization:users:read" MemberTypeOrganizationUsersWrite MemberType = "organization:users:write" MemberTypeProjectAiGatewayKeysRead MemberType = "project:ai_gateway_keys:read" MemberTypeProjectAiGatewayKeysWrite MemberType = "project:ai_gateway_keys:write" @@ -583,6 +585,7 @@ const ( MemberTypeReadOnly MemberType = "read_only" MemberTypeRoleOrganizationAdmin MemberType = "role:organization:admin" MemberTypeRoleProjectAdmin MemberType = "role:project:admin" + MemberTypeRoleProjectManager MemberType = "role:project:manager" MemberTypeRoleProjectRead MemberType = "role:project:read" MemberTypeRoleServicesMaintenance MemberType = "role:services:maintenance" MemberTypeRoleServicesRecover MemberType = "role:services:recover" @@ -595,7 +598,7 @@ const ( ) func MemberTypeChoices() []string { - return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} + return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:manager", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} } type OrderByType string @@ -679,11 +682,13 @@ const ( TeamTypeOrganizationBillingWrite TeamType = "organization:billing:write" TeamTypeOrganizationDomainsWrite TeamType = "organization:domains:write" TeamTypeOrganizationEventLogsRead TeamType = "organization:event_logs:read" + TeamTypeOrganizationGroupsRead TeamType = "organization:groups:read" TeamTypeOrganizationGroupsWrite TeamType = "organization:groups:write" TeamTypeOrganizationNetworkingRead TeamType = "organization:networking:read" TeamTypeOrganizationNetworkingWrite TeamType = "organization:networking:write" TeamTypeOrganizationProjectsWrite TeamType = "organization:projects:write" TeamTypeOrganizationSustainabilityRead TeamType = "organization:sustainability:read" + TeamTypeOrganizationUsersRead TeamType = "organization:users:read" TeamTypeOrganizationUsersWrite TeamType = "organization:users:write" TeamTypeProjectAiGatewayKeysRead TeamType = "project:ai_gateway_keys:read" TeamTypeProjectAiGatewayKeysWrite TeamType = "project:ai_gateway_keys:write" @@ -699,6 +704,7 @@ const ( TeamTypeReadOnly TeamType = "read_only" TeamTypeRoleOrganizationAdmin TeamType = "role:organization:admin" TeamTypeRoleProjectAdmin TeamType = "role:project:admin" + TeamTypeRoleProjectManager TeamType = "role:project:manager" TeamTypeRoleProjectRead TeamType = "role:project:read" TeamTypeRoleServicesMaintenance TeamType = "role:services:maintenance" TeamTypeRoleServicesRecover TeamType = "role:services:recover" @@ -711,7 +717,7 @@ const ( ) func TeamTypeChoices() []string { - return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} + return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:manager", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} } type TechEmailOut struct { diff --git a/handler/accountteam/accountteam.go b/handler/accountteam/accountteam.go index 32db34b..ef26eeb 100644 --- a/handler/accountteam/accountteam.go +++ b/handler/accountteam/accountteam.go @@ -247,11 +247,13 @@ const ( TeamTypeOrganizationBillingWrite TeamType = "organization:billing:write" TeamTypeOrganizationDomainsWrite TeamType = "organization:domains:write" TeamTypeOrganizationEventLogsRead TeamType = "organization:event_logs:read" + TeamTypeOrganizationGroupsRead TeamType = "organization:groups:read" TeamTypeOrganizationGroupsWrite TeamType = "organization:groups:write" TeamTypeOrganizationNetworkingRead TeamType = "organization:networking:read" TeamTypeOrganizationNetworkingWrite TeamType = "organization:networking:write" TeamTypeOrganizationProjectsWrite TeamType = "organization:projects:write" TeamTypeOrganizationSustainabilityRead TeamType = "organization:sustainability:read" + TeamTypeOrganizationUsersRead TeamType = "organization:users:read" TeamTypeOrganizationUsersWrite TeamType = "organization:users:write" TeamTypeProjectAiGatewayKeysRead TeamType = "project:ai_gateway_keys:read" TeamTypeProjectAiGatewayKeysWrite TeamType = "project:ai_gateway_keys:write" @@ -267,6 +269,7 @@ const ( TeamTypeReadOnly TeamType = "read_only" TeamTypeRoleOrganizationAdmin TeamType = "role:organization:admin" TeamTypeRoleProjectAdmin TeamType = "role:project:admin" + TeamTypeRoleProjectManager TeamType = "role:project:manager" TeamTypeRoleProjectRead TeamType = "role:project:read" TeamTypeRoleServicesMaintenance TeamType = "role:services:maintenance" TeamTypeRoleServicesRecover TeamType = "role:services:recover" @@ -279,7 +282,7 @@ const ( ) func TeamTypeChoices() []string { - return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} + return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:manager", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} } // accountTeamCreateOut AccountTeamCreateResponse diff --git a/handler/project/project.go b/handler/project/project.go index 85af788..14f6025 100644 --- a/handler/project/project.go +++ b/handler/project/project.go @@ -446,6 +446,14 @@ type AlertOut struct { Severity string `json:"severity"` // Severity of the event } +// ApplicationOut Service type information +type ApplicationOut struct { + DefaultVersion *string `json:"default_version,omitempty"` // Default version of the service if no explicit version is defined + Description string `json:"description"` // Single line description of the service + LatestAvailableVersion *string `json:"latest_available_version,omitempty"` // Latest available version of the service + UserConfigSchema map[string]any `json:"user_config_schema"` // JSON-Schema for the 'user_config' properties +} + // BackupConfigOut Backup configuration for this service plan type BackupConfigOut struct { FrequentIntervalMinutes *int `json:"frequent_interval_minutes,omitempty"` // Interval of taking a frequent backup in service types supporting different backup schedules @@ -594,11 +602,13 @@ const ( MemberTypeOrganizationBillingWrite MemberType = "organization:billing:write" MemberTypeOrganizationDomainsWrite MemberType = "organization:domains:write" MemberTypeOrganizationEventLogsRead MemberType = "organization:event_logs:read" + MemberTypeOrganizationGroupsRead MemberType = "organization:groups:read" MemberTypeOrganizationGroupsWrite MemberType = "organization:groups:write" MemberTypeOrganizationNetworkingRead MemberType = "organization:networking:read" MemberTypeOrganizationNetworkingWrite MemberType = "organization:networking:write" MemberTypeOrganizationProjectsWrite MemberType = "organization:projects:write" MemberTypeOrganizationSustainabilityRead MemberType = "organization:sustainability:read" + MemberTypeOrganizationUsersRead MemberType = "organization:users:read" MemberTypeOrganizationUsersWrite MemberType = "organization:users:write" MemberTypeProjectAiGatewayKeysRead MemberType = "project:ai_gateway_keys:read" MemberTypeProjectAiGatewayKeysWrite MemberType = "project:ai_gateway_keys:write" @@ -614,6 +624,7 @@ const ( MemberTypeReadOnly MemberType = "read_only" MemberTypeRoleOrganizationAdmin MemberType = "role:organization:admin" MemberTypeRoleProjectAdmin MemberType = "role:project:admin" + MemberTypeRoleProjectManager MemberType = "role:project:manager" MemberTypeRoleProjectRead MemberType = "role:project:read" MemberTypeRoleServicesMaintenance MemberType = "role:services:maintenance" MemberTypeRoleServicesRecover MemberType = "role:services:recover" @@ -626,7 +637,7 @@ const ( ) func MemberTypeChoices() []string { - return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} + return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:manager", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} } // MysqlOut Service type information @@ -780,11 +791,13 @@ const ( ProjectMembershipTypeOrganizationBillingWrite ProjectMembershipType = "organization:billing:write" ProjectMembershipTypeOrganizationDomainsWrite ProjectMembershipType = "organization:domains:write" ProjectMembershipTypeOrganizationEventLogsRead ProjectMembershipType = "organization:event_logs:read" + ProjectMembershipTypeOrganizationGroupsRead ProjectMembershipType = "organization:groups:read" ProjectMembershipTypeOrganizationGroupsWrite ProjectMembershipType = "organization:groups:write" ProjectMembershipTypeOrganizationNetworkingRead ProjectMembershipType = "organization:networking:read" ProjectMembershipTypeOrganizationNetworkingWrite ProjectMembershipType = "organization:networking:write" ProjectMembershipTypeOrganizationProjectsWrite ProjectMembershipType = "organization:projects:write" ProjectMembershipTypeOrganizationSustainabilityRead ProjectMembershipType = "organization:sustainability:read" + ProjectMembershipTypeOrganizationUsersRead ProjectMembershipType = "organization:users:read" ProjectMembershipTypeOrganizationUsersWrite ProjectMembershipType = "organization:users:write" ProjectMembershipTypeProjectAiGatewayKeysRead ProjectMembershipType = "project:ai_gateway_keys:read" ProjectMembershipTypeProjectAiGatewayKeysWrite ProjectMembershipType = "project:ai_gateway_keys:write" @@ -800,6 +813,7 @@ const ( ProjectMembershipTypeReadOnly ProjectMembershipType = "read_only" ProjectMembershipTypeRoleOrganizationAdmin ProjectMembershipType = "role:organization:admin" ProjectMembershipTypeRoleProjectAdmin ProjectMembershipType = "role:project:admin" + ProjectMembershipTypeRoleProjectManager ProjectMembershipType = "role:project:manager" ProjectMembershipTypeRoleProjectRead ProjectMembershipType = "role:project:read" ProjectMembershipTypeRoleServicesMaintenance ProjectMembershipType = "role:services:maintenance" ProjectMembershipTypeRoleServicesRecover ProjectMembershipType = "role:services:recover" @@ -812,7 +826,7 @@ const ( ) func ProjectMembershipTypeChoices() []string { - return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} + return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:manager", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} } type ProjectOut struct { @@ -890,6 +904,7 @@ type ProjectServiceTypesListElasticsearchOut struct { // ProjectServiceTypesListOut ProjectServiceTypesListResponse type ProjectServiceTypesListOut struct { + Application *ApplicationOut `json:"application,omitempty"` // Service type information Clickhouse *ClickhouseOut `json:"clickhouse,omitempty"` // Service type information Dragonfly *DragonflyOut `json:"dragonfly,omitempty"` // Service type information Elasticsearch *ProjectServiceTypesListElasticsearchOut `json:"elasticsearch,omitempty"` // Service type information diff --git a/handler/service/service.go b/handler/service/service.go index 7f46c49..c849291 100644 --- a/handler/service/service.go +++ b/handler/service/service.go @@ -25,7 +25,7 @@ type Handler interface { // ListServiceVersions list service versions // GET /v1/service_versions // https://api.aiven.io/doc/#tag/Service/operation/ListServiceVersions - ListServiceVersions(ctx context.Context) ([]ServiceVersionOut, error) + ListServiceVersions(ctx context.Context, query ...[2]string) ([]ServiceVersionOut, error) // ProjectGetServiceLogs get service log entries // POST /v1/project/{project}/service/{service_name}/logs @@ -313,9 +313,14 @@ func (h *ServiceHandler) ListPublicServiceTypes(ctx context.Context) (*ListPubli } return &out.ServiceTypes, nil } -func (h *ServiceHandler) ListServiceVersions(ctx context.Context) ([]ServiceVersionOut, error) { + +// ListServiceVersionsVisibleUntilType How far into a version's lifecycle it should still be listed: end-of-availability (default, matches historical behavior), or end-of-life (Aiven's own end of life). +func ListServiceVersionsVisibleUntilType(visibleUntilType VisibleUntilType) [2]string { + return [2]string{"visible_until", fmt.Sprintf("%s", visibleUntilType)} +} +func (h *ServiceHandler) ListServiceVersions(ctx context.Context, query ...[2]string) ([]ServiceVersionOut, error) { path := fmt.Sprintf("/v1/service_versions") - b, err := h.doer.Do(ctx, "ListServiceVersions", "GET", path, nil) + b, err := h.doer.Do(ctx, "ListServiceVersions", "GET", path, nil, query...) if err != nil { return nil, err } @@ -869,6 +874,15 @@ type AlertOut struct { ServiceType *string `json:"service_type,omitempty"` // Service type code Severity string `json:"severity"` // Severity of the event } + +// ApplicationOut Service type information +type ApplicationOut struct { + DefaultVersion *string `json:"default_version,omitempty"` // Default version of the service if no explicit version is defined + Description string `json:"description"` // Single line description of the service + LatestAvailableVersion *string `json:"latest_available_version,omitempty"` // Latest available version of the service + ServicePlans []ServicePlanOut `json:"service_plans"` // List of plans available for this type of service + UserConfigSchema map[string]any `json:"user_config_schema"` // JSON-Schema for the 'user_config' properties +} type AuthenticationType string const ( @@ -1163,6 +1177,7 @@ func IntegrationStatusTypeChoices() []string { type IntegrationType string const ( + IntegrationTypeAlertTriageKafka IntegrationType = "alert_triage_kafka" IntegrationTypeAlertmanager IntegrationType = "alertmanager" IntegrationTypeApplicationServiceCredential IntegrationType = "application_service_credential" IntegrationTypeAutoscaler IntegrationType = "autoscaler" @@ -1215,7 +1230,7 @@ const ( ) func IntegrationTypeChoices() []string { - return []string{"alertmanager", "application_service_credential", "autoscaler", "autoscaler_service", "caching", "clickhouse_credentials", "clickhouse_kafka", "clickhouse_postgresql", "dashboard", "datadog", "datahub_metadata_ingestion", "datasource", "disaster_recovery", "external_aws_cloudwatch_logs", "external_aws_cloudwatch_metrics", "external_elasticsearch_logs", "external_google_cloud_logging", "external_opensearch_logs", "flink", "flink_external_bigquery", "flink_external_kafka", "flink_external_postgresql", "internal_connectivity", "jolokia", "kafka_connect", "kafka_connect_postgresql", "kafka_inkless_postgresql", "kafka_logs", "kafka_mirrormaker", "logs", "metrics", "opensearch_cross_cluster_replication", "opensearch_cross_cluster_search", "opentelemetry", "prometheus", "read_replica", "rsyslog", "schema_registry_proxy", "service_composition", "stresstester", "thanos_distributed_query", "thanos_migrate", "thanos_object_storage", "thanoscompactor", "thanosquery", "thanosruler", "thanosstore", "vector", "vmalert"} + return []string{"alert_triage_kafka", "alertmanager", "application_service_credential", "autoscaler", "autoscaler_service", "caching", "clickhouse_credentials", "clickhouse_kafka", "clickhouse_postgresql", "dashboard", "datadog", "datahub_metadata_ingestion", "datasource", "disaster_recovery", "external_aws_cloudwatch_logs", "external_aws_cloudwatch_metrics", "external_elasticsearch_logs", "external_google_cloud_logging", "external_opensearch_logs", "flink", "flink_external_bigquery", "flink_external_kafka", "flink_external_postgresql", "internal_connectivity", "jolokia", "kafka_connect", "kafka_connect_postgresql", "kafka_inkless_postgresql", "kafka_logs", "kafka_mirrormaker", "logs", "metrics", "opensearch_cross_cluster_replication", "opensearch_cross_cluster_search", "opentelemetry", "prometheus", "read_replica", "rsyslog", "schema_registry_proxy", "service_composition", "stresstester", "thanos_distributed_query", "thanos_migrate", "thanos_object_storage", "thanoscompactor", "thanosquery", "thanosruler", "thanosstore", "vector", "vmalert"} } type IntegrationTypeOut struct { @@ -1323,6 +1338,7 @@ func LikelyErrorCauseTypeChoices() []string { // ListProjectServiceTypesOut Service plans by service type type ListProjectServiceTypesOut struct { + Application *ApplicationOut `json:"application,omitempty"` // Service type information Clickhouse *ClickhouseOut `json:"clickhouse,omitempty"` // Service type information Dragonfly *DragonflyOut `json:"dragonfly,omitempty"` // Service type information Elasticsearch *ElasticsearchOut `json:"elasticsearch,omitempty"` // Service type information @@ -1341,6 +1357,7 @@ type ListProjectServiceTypesOut struct { // ListPublicServiceTypesOut Service plans by service type type ListPublicServiceTypesOut struct { + Application *ApplicationOut `json:"application,omitempty"` // Service type information Clickhouse *ClickhouseOut `json:"clickhouse,omitempty"` // Service type information Dragonfly *DragonflyOut `json:"dragonfly,omitempty"` // Service type information Elasticsearch *ElasticsearchOut `json:"elasticsearch,omitempty"` // Service type information @@ -2669,6 +2686,16 @@ type ValkeyOut struct { ServicePlans []ServicePlanOut `json:"service_plans"` // List of plans available for this type of service UserConfigSchema map[string]any `json:"user_config_schema"` // JSON-Schema for the 'user_config' properties } +type VisibleUntilType string + +const ( + VisibleUntilTypeEndOfAvailability VisibleUntilType = "end-of-availability" + VisibleUntilTypeEndOfLife VisibleUntilType = "end-of-life" +) + +func VisibleUntilTypeChoices() []string { + return []string{"end-of-availability", "end-of-life"} +} // listProjectServiceTypesOut ListProjectServiceTypesResponse type listProjectServiceTypesOut struct { diff --git a/handler/user/user.go b/handler/user/user.go index 6ead236..cb2ae57 100644 --- a/handler/user/user.go +++ b/handler/user/user.go @@ -607,11 +607,13 @@ const ( ProjectMembershipTypeOrganizationBillingWrite ProjectMembershipType = "organization:billing:write" ProjectMembershipTypeOrganizationDomainsWrite ProjectMembershipType = "organization:domains:write" ProjectMembershipTypeOrganizationEventLogsRead ProjectMembershipType = "organization:event_logs:read" + ProjectMembershipTypeOrganizationGroupsRead ProjectMembershipType = "organization:groups:read" ProjectMembershipTypeOrganizationGroupsWrite ProjectMembershipType = "organization:groups:write" ProjectMembershipTypeOrganizationNetworkingRead ProjectMembershipType = "organization:networking:read" ProjectMembershipTypeOrganizationNetworkingWrite ProjectMembershipType = "organization:networking:write" ProjectMembershipTypeOrganizationProjectsWrite ProjectMembershipType = "organization:projects:write" ProjectMembershipTypeOrganizationSustainabilityRead ProjectMembershipType = "organization:sustainability:read" + ProjectMembershipTypeOrganizationUsersRead ProjectMembershipType = "organization:users:read" ProjectMembershipTypeOrganizationUsersWrite ProjectMembershipType = "organization:users:write" ProjectMembershipTypeProjectAiGatewayKeysRead ProjectMembershipType = "project:ai_gateway_keys:read" ProjectMembershipTypeProjectAiGatewayKeysWrite ProjectMembershipType = "project:ai_gateway_keys:write" @@ -627,6 +629,7 @@ const ( ProjectMembershipTypeReadOnly ProjectMembershipType = "read_only" ProjectMembershipTypeRoleOrganizationAdmin ProjectMembershipType = "role:organization:admin" ProjectMembershipTypeRoleProjectAdmin ProjectMembershipType = "role:project:admin" + ProjectMembershipTypeRoleProjectManager ProjectMembershipType = "role:project:manager" ProjectMembershipTypeRoleProjectRead ProjectMembershipType = "role:project:read" ProjectMembershipTypeRoleServicesMaintenance ProjectMembershipType = "role:services:maintenance" ProjectMembershipTypeRoleServicesRecover ProjectMembershipType = "role:services:recover" @@ -639,7 +642,7 @@ const ( ) func ProjectMembershipTypeChoices() []string { - return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} + return []string{"admin", "developer", "operator", "organization:app_users:write", "organization:billing:read", "organization:billing:write", "organization:domains:write", "organization:event_logs:read", "organization:groups:read", "organization:groups:write", "organization:networking:read", "organization:networking:write", "organization:projects:write", "organization:sustainability:read", "organization:users:read", "organization:users:write", "project:ai_gateway_keys:read", "project:ai_gateway_keys:write", "project:audit_logs:read", "project:event_logs:read", "project:integrations:read", "project:integrations:write", "project:networking:read", "project:networking:write", "project:permissions:read", "project:services:read", "project:services:write", "read_only", "role:organization:admin", "role:project:admin", "role:project:manager", "role:project:read", "role:services:maintenance", "role:services:recover", "service:configuration:write", "service:data:write", "service:logs:read", "service:metrics:read", "service:secrets:read", "service:users:write"} } type TokenOut struct {