diff --git a/databases.go b/databases.go index 2deb17b..204ca93 100644 --- a/databases.go +++ b/databases.go @@ -158,7 +158,7 @@ type DatabasesService interface { UpdateTopic(context.Context, string, string, *DatabaseUpdateTopicRequest) (*Response, error) GetMetricsCredentials(context.Context) (*DatabaseMetricsCredentials, *Response, error) UpdateMetricsCredentials(context.Context, *DatabaseUpdateMetricsCredentialsRequest) (*Response, error) - ListDatabaseEvents(context.Context, string) ([]*DatabaseEvent, *Response, error) + ListDatabaseEvents(context.Context, string, *ListOptions) ([]DatabaseEvent, *Response, error) } // DatabasesServiceOp handles communication with the Databases related methods @@ -698,6 +698,7 @@ type DatabaseOptions struct { PostgresSQLOptions DatabaseEngineOptions `json:"pg"` RedisOptions DatabaseEngineOptions `json:"redis"` KafkaOptions DatabaseEngineOptions `json:"kafka"` + OpensearchOptions DatabaseEngineOptions `json:"opensearch"` } // DatabaseEngineOptions represents the configuration options that are available for a given database engine @@ -715,7 +716,7 @@ type DatabaseLayout struct { // ListDatabaseEvents contains a list of project events. type ListDatabaseEvents struct { - Events []*DatabaseEvent `json:"events"` + Events []DatabaseEvent `json:"events"` } // DatbaseEvent contains the information about a Datbase event. @@ -727,7 +728,7 @@ type DatabaseEvent struct { } type ListDatabaseEventsRoot struct { - Events []*DatabaseEvent `json:"events"` + Events []DatabaseEvent `json:"events"` } // URN returns a URN identifier for the database @@ -1537,8 +1538,12 @@ func (svc *DatabasesServiceOp) UpdateMetricsCredentials(ctx context.Context, upd return resp, nil } -func (svc *DatabasesServiceOp) ListDatabaseEvents(ctx context.Context, databaseID string) ([]*DatabaseEvent, *Response, error) { +func (svc *DatabasesServiceOp) ListDatabaseEvents(ctx context.Context, databaseID string, opts *ListOptions) ([]DatabaseEvent, *Response, error) { path := fmt.Sprintf(databaseEvents, databaseID) + path, err := addOptions(path, opts) + if err != nil { + return nil, nil, err + } root := new(ListDatabaseEventsRoot) req, err := svc.client.NewRequest(ctx, http.MethodGet, path, nil) if err != nil { @@ -1551,5 +1556,4 @@ func (svc *DatabasesServiceOp) ListDatabaseEvents(ctx context.Context, databaseI } return root.Events, resp, nil - } diff --git a/databases_test.go b/databases_test.go index 2035ccf..c3da663 100644 --- a/databases_test.go +++ b/databases_test.go @@ -2078,7 +2078,56 @@ func TestDatabases_GetDatabaseOptions(t *testing.T) { "num_nodes": 3, "sizes": [ "gd-2vcpu-8gb", - "gd-4vcpu-16gb" + "gd-4vcpu-16gb" + ] + } + ] + }, + "opensearch": { + "regions": [ + "ams3", + "tor1" + ], + "versions": [ + "1", + "2" + ], + "layouts": [ + { + "num_nodes": 1, + "sizes": [ + "db-s-2vcpu-4gb", + "db-s-4vcpu-8gb" + ] + }, + { + "num_nodes": 3, + "sizes": [ + "db-s-2vcpu-4gb", + "m3-2vcpu-16gb", + "db-s-4vcpu-8gb", + "m3-4vcpu-32gb" + ] + }, + { + "num_nodes": 6, + "sizes": [ + "m3-2vcpu-16gb", + "m3-4vcpu-32gb" + ] + }, + { + "num_nodes": 9, + "sizes": [ + "m3-2vcpu-16gb", + "m3-4vcpu-32gb" + ] + }, + { + "num_nodes": 15, + "sizes": [ + "m3-2vcpu-16gb", + "m3-4vcpu-32gb" ] } ] @@ -2124,21 +2173,25 @@ func TestDatabases_GetDatabaseOptions(t *testing.T) { require.NotNil(t, options.RedisOptions) require.NotNil(t, options.MySQLOptions) require.NotNil(t, options.KafkaOptions) + require.NotNil(t, options.OpensearchOptions) require.Greater(t, len(options.MongoDBOptions.Regions), 0) require.Greater(t, len(options.PostgresSQLOptions.Regions), 0) require.Greater(t, len(options.RedisOptions.Regions), 0) require.Greater(t, len(options.MySQLOptions.Regions), 0) require.Greater(t, len(options.KafkaOptions.Regions), 0) + require.Greater(t, len(options.OpensearchOptions.Regions), 0) require.Greater(t, len(options.MongoDBOptions.Versions), 0) require.Greater(t, len(options.PostgresSQLOptions.Versions), 0) require.Greater(t, len(options.RedisOptions.Versions), 0) require.Greater(t, len(options.MySQLOptions.Versions), 0) require.Greater(t, len(options.KafkaOptions.Versions), 0) + require.Greater(t, len(options.OpensearchOptions.Versions), 0) require.Greater(t, len(options.MongoDBOptions.Layouts), 0) require.Greater(t, len(options.PostgresSQLOptions.Layouts), 0) require.Greater(t, len(options.RedisOptions.Layouts), 0) require.Greater(t, len(options.MySQLOptions.Layouts), 0) require.Greater(t, len(options.KafkaOptions.Layouts), 0) + require.Greater(t, len(options.OpensearchOptions.Layouts), 0) } func TestDatabases_CreateDatabaseUserWithMySQLSettings(t *testing.T) { @@ -3137,7 +3190,7 @@ func TestDatabases_ListDatabaseEvents(t *testing.T) { path := fmt.Sprintf("/v2/databases/%s/events", dbID) - want := []*DatabaseEvent{ + want := []DatabaseEvent{ { ID: "pe8u2huh", ServiceName: "customer-events", @@ -3162,7 +3215,7 @@ func TestDatabases_ListDatabaseEvents(t *testing.T) { fmt.Fprint(w, body) }) - got, _, err := client.Databases.ListDatabaseEvents(ctx, dbID) + got, _, err := client.Databases.ListDatabaseEvents(ctx, dbID, &ListOptions{}) require.NoError(t, err) require.Equal(t, want, got) }