diff --git a/databases.go b/databases.go index 8887fd0..20c9cff 100644 --- a/databases.go +++ b/databases.go @@ -86,6 +86,7 @@ type Database struct { MaintenanceWindow *DatabaseMaintenanceWindow `json:"maintenance_window,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` PrivateNetworkUUID string `json:"private_network_uuid,omitempty"` + Tags []string `json:"tags,omitempty"` } // DatabaseConnection represents a database connection @@ -123,13 +124,14 @@ type DatabaseBackup struct { // DatabaseCreateRequest represents a request to create a database cluster type DatabaseCreateRequest struct { - Name string `json:"name,omitempty"` - EngineSlug string `json:"engine,omitempty"` - Version string `json:"version,omitempty"` - SizeSlug string `json:"size,omitempty"` - Region string `json:"region,omitempty"` - NumNodes int `json:"num_nodes,omitempty"` - PrivateNetworkUUID string `json:"private_network_uuid"` + Name string `json:"name,omitempty"` + EngineSlug string `json:"engine,omitempty"` + Version string `json:"version,omitempty"` + SizeSlug string `json:"size,omitempty"` + Region string `json:"region,omitempty"` + NumNodes int `json:"num_nodes,omitempty"` + PrivateNetworkUUID string `json:"private_network_uuid"` + Tags []string `json:"tags,omitempty"` } // DatabaseResizeRequest can be used to initiate a database resize operation. @@ -167,6 +169,7 @@ type DatabaseReplica struct { Status string `json:"status"` CreatedAt time.Time `json:"created_at"` PrivateNetworkUUID string `json:"private_network_uuid,omitempty"` + Tags []string `json:"tags,omitempty"` } // DatabasePool represents a database connection pool @@ -201,10 +204,11 @@ type DatabaseCreateDBRequest struct { // DatabaseCreateReplicaRequest is used to create a new read-only replica type DatabaseCreateReplicaRequest struct { - Name string `json:"name"` - Region string `json:"region"` - Size string `json:"size"` - PrivateNetworkUUID string `json:"private_network_uuid"` + Name string `json:"name"` + Region string `json:"region"` + Size string `json:"size"` + PrivateNetworkUUID string `json:"private_network_uuid"` + Tags []string `json:"tags,omitempty"` } type databaseUserRoot struct { diff --git a/databases_test.go b/databases_test.go index 2bd38e4..3af17e0 100644 --- a/databases_test.go +++ b/databases_test.go @@ -57,6 +57,7 @@ var db = Database{ }, SizeSlug: "db-s-2vcpu-4gb", PrivateNetworkUUID: "da4e0206-d019-41d7-b51f-deadbeefbb8f", + Tags: []string{"production", "staging"}, } var dbJSON = ` @@ -104,7 +105,8 @@ var dbJSON = ` "description": null }, "size": "db-s-2vcpu-4gb", - "private_network_uuid": "da4e0206-d019-41d7-b51f-deadbeefbb8f" + "private_network_uuid": "da4e0206-d019-41d7-b51f-deadbeefbb8f", + "tags": ["production", "staging"] } ` @@ -193,6 +195,7 @@ func TestDatabases_Create(t *testing.T) { CreatedAt: time.Date(2019, 2, 26, 6, 12, 39, 0, time.UTC), MaintenanceWindow: nil, SizeSlug: "db-s-2vcpu-4gb", + Tags: []string{"production", "staging"}, } createRequest := &DatabaseCreateRequest{ @@ -202,6 +205,7 @@ func TestDatabases_Create(t *testing.T) { Region: "nyc3", SizeSlug: "db-s-2vcpu-4gb", NumNodes: 2, + Tags: []string{"production", "staging"}, } body := ` @@ -236,7 +240,8 @@ func TestDatabases_Create(t *testing.T) { "status": "creating", "created_at": "2019-02-26T06:12:39Z", "maintenance_window": null, - "size": "db-s-2vcpu-4gb" + "size": "db-s-2vcpu-4gb", + "tags": ["production", "staging"] } }` @@ -918,6 +923,7 @@ func TestDatabases_GetReplica(t *testing.T) { Database: "db", }, PrivateNetworkUUID: "deadbeef-dead-4aa5-beef-deadbeef347d", + Tags: []string{"production", "staging"}, } body := ` @@ -945,7 +951,8 @@ func TestDatabases_GetReplica(t *testing.T) { "database": "db", "ssl": true }, - "private_network_uuid": "deadbeef-dead-4aa5-beef-deadbeef347d" + "private_network_uuid": "deadbeef-dead-4aa5-beef-deadbeef347d", + "tags": ["production", "staging"] } } ` @@ -994,6 +1001,7 @@ func TestDatabases_ListReplicas(t *testing.T) { Database: "db", }, PrivateNetworkUUID: "deadbeef-dead-4aa5-beef-deadbeef347d", + Tags: []string{"production", "staging"}, }, } @@ -1022,7 +1030,8 @@ func TestDatabases_ListReplicas(t *testing.T) { "database": "db", "ssl": true }, - "private_network_uuid": "deadbeef-dead-4aa5-beef-deadbeef347d" + "private_network_uuid": "deadbeef-dead-4aa5-beef-deadbeef347d", + "tags": ["production", "staging"] }] } ` @@ -1070,6 +1079,7 @@ func TestDatabases_CreateReplica(t *testing.T) { Database: "db", }, PrivateNetworkUUID: "deadbeef-dead-4aa5-beef-deadbeef347d", + Tags: []string{"production", "staging"}, } body := ` @@ -1097,7 +1107,8 @@ func TestDatabases_CreateReplica(t *testing.T) { "database": "db", "ssl": true }, - "private_network_uuid": "deadbeef-dead-4aa5-beef-deadbeef347d" + "private_network_uuid": "deadbeef-dead-4aa5-beef-deadbeef347d", + "tags": ["production", "staging"] } } ` @@ -1113,6 +1124,7 @@ func TestDatabases_CreateReplica(t *testing.T) { Region: "nyc1", Size: "db-s-2vcpu-4gb", PrivateNetworkUUID: privateNetworkUUID, + Tags: []string{"production", "staging"}, }) require.NoError(t, err) require.Equal(t, want, got)