/
common_types.go
62 lines (47 loc) · 1.95 KB
/
common_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
Copyright 2021.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1alpha1
// PostgresRef is a reference to a PostgreSQL server
type PostgresRef struct {
// Host is the host of the PostgreSQL server to configure
Host string `json:"host,omitempty"`
// Port is the port of the PostgreSQL server to configure
Port uint16 `json:"port,omitempty"`
// Database is the name of the database to configure
Database string `json:"database,omitempty"`
// SecretRef is a reference to a secret in the same namespace that contains
// credentials to authenticate against the PostgreSQL server
SecretRef SecretRef `json:"secretRef"`
// Variant is for specific database-as-a-service providers. Valid values
// are: aiven, standard. The default value is "standard"
Variant string `json:"variant,omitempty"`
}
// PostgresColumn represents a column
type PostgresColumn struct {
// Name of the column
Name string `json:"name"`
// DataType is the data type of the column
DataType string `json:"dataType"`
// Nullable determines whether the created column can be NULL
Nullable bool `json:"nullable"`
// PrimaryKey defines whether the column is part of the table's primary key
PrimaryKey bool `json:"primaryKey"`
}
// PostgresIdentifier represents an identifier for a table, e.g. a pair of
// schema and table name.
type PostgresIdentifier struct {
// Name is the name of the table
Name string `json:"name"`
// Schema is the name of the schema the table resides in
Schema string `json:"schema"`
}