|
24 | 24 |
|
25 | 25 | /** Represents a Cloud Spanner database. */
|
26 | 26 | public class DatabaseInfo {
|
| 27 | + |
27 | 28 | public abstract static class Builder {
|
28 | 29 | abstract Builder setState(State state);
|
29 | 30 |
|
@@ -44,6 +45,15 @@ public abstract static class Builder {
|
44 | 45 | */
|
45 | 46 | public abstract Builder setEncryptionConfig(CustomerManagedEncryption encryptionConfig);
|
46 | 47 |
|
| 48 | +/** |
| 49 | +* The read-write region which will be used for the database's leader replicas. This can be one |
| 50 | +* of the values as specified in |
| 51 | +* https://cloud.google.com/spanner/docs/instances#available-configurations-multi-region. |
| 52 | +*/ |
| 53 | +public Builder setDefaultLeader(String defaultLeader) { |
| 54 | +throw new UnsupportedOperationException("Unimplemented"); |
| 55 | +} |
| 56 | + |
47 | 57 | abstract Builder setProto(com.google.spanner.admin.database.v1.Database proto);
|
48 | 58 |
|
49 | 59 | /** Builds the database from this builder. */
|
@@ -58,6 +68,7 @@ abstract static class BuilderImpl extends Builder {
|
58 | 68 | private String versionRetentionPeriod;
|
59 | 69 | private Timestamp earliestVersionTime;
|
60 | 70 | private CustomerManagedEncryption encryptionConfig;
|
| 71 | +private String defaultLeader; |
61 | 72 | private com.google.spanner.admin.database.v1.Database proto;
|
62 | 73 |
|
63 | 74 | BuilderImpl(DatabaseId id) {
|
@@ -72,6 +83,7 @@ abstract static class BuilderImpl extends Builder {
|
72 | 83 | this.versionRetentionPeriod = other.versionRetentionPeriod;
|
73 | 84 | this.earliestVersionTime = other.earliestVersionTime;
|
74 | 85 | this.encryptionConfig = other.encryptionConfig;
|
| 86 | +this.defaultLeader = other.defaultLeader; |
75 | 87 | this.proto = other.proto;
|
76 | 88 | }
|
77 | 89 |
|
@@ -111,6 +123,12 @@ public Builder setEncryptionConfig(@Nullable CustomerManagedEncryption encryptio
|
111 | 123 | return this;
|
112 | 124 | }
|
113 | 125 |
|
| 126 | +@Override |
| 127 | +public Builder setDefaultLeader(String defaultLeader) { |
| 128 | +this.defaultLeader = defaultLeader; |
| 129 | +return this; |
| 130 | +} |
| 131 | + |
114 | 132 | @Override
|
115 | 133 | Builder setProto(@Nullable com.google.spanner.admin.database.v1.Database proto) {
|
116 | 134 | this.proto = proto;
|
@@ -137,6 +155,7 @@ public enum State {
|
137 | 155 | private final String versionRetentionPeriod;
|
138 | 156 | private final Timestamp earliestVersionTime;
|
139 | 157 | private final CustomerManagedEncryption encryptionConfig;
|
| 158 | +private final String defaultLeader; |
140 | 159 | private final com.google.spanner.admin.database.v1.Database proto;
|
141 | 160 |
|
142 | 161 | public DatabaseInfo(DatabaseId id, State state) {
|
@@ -147,6 +166,7 @@ public DatabaseInfo(DatabaseId id, State state) {
|
147 | 166 | this.versionRetentionPeriod = null;
|
148 | 167 | this.earliestVersionTime = null;
|
149 | 168 | this.encryptionConfig = null;
|
| 169 | +this.defaultLeader = null; |
150 | 170 | this.proto = null;
|
151 | 171 | }
|
152 | 172 |
|
@@ -158,6 +178,7 @@ public DatabaseInfo(DatabaseId id, State state) {
|
158 | 178 | this.versionRetentionPeriod = builder.versionRetentionPeriod;
|
159 | 179 | this.earliestVersionTime = builder.earliestVersionTime;
|
160 | 180 | this.encryptionConfig = builder.encryptionConfig;
|
| 181 | +this.defaultLeader = builder.defaultLeader; |
161 | 182 | this.proto = builder.proto;
|
162 | 183 | }
|
163 | 184 |
|
@@ -209,6 +230,15 @@ public Timestamp getEarliestVersionTime() {
|
209 | 230 | return encryptionConfig;
|
210 | 231 | }
|
211 | 232 |
|
| 233 | +/** |
| 234 | +* The read-write region which contains the database's leader replicas. If this value was not |
| 235 | +* explicitly set during a create database or update database ddl operations, it will be {@code |
| 236 | +* NULL}. |
| 237 | +*/ |
| 238 | +public @Nullable String getDefaultLeader() { |
| 239 | +return defaultLeader; |
| 240 | +} |
| 241 | + |
212 | 242 | /** Returns the raw proto instance that was used to construct this {@link Database}. */
|
213 | 243 | public @Nullable com.google.spanner.admin.database.v1.Database getProto() {
|
214 | 244 | return proto;
|
@@ -229,7 +259,8 @@ public boolean equals(Object o) {
|
229 | 259 | && Objects.equals(restoreInfo, that.restoreInfo)
|
230 | 260 | && Objects.equals(versionRetentionPeriod, that.versionRetentionPeriod)
|
231 | 261 | && Objects.equals(earliestVersionTime, that.earliestVersionTime)
|
232 |
| -&& Objects.equals(encryptionConfig, that.encryptionConfig); |
| 262 | +&& Objects.equals(encryptionConfig, that.encryptionConfig) |
| 263 | +&& Objects.equals(defaultLeader, that.defaultLeader); |
233 | 264 | }
|
234 | 265 |
|
235 | 266 | @Override
|
@@ -241,19 +272,21 @@ public int hashCode() {
|
241 | 272 | restoreInfo,
|
242 | 273 | versionRetentionPeriod,
|
243 | 274 | earliestVersionTime,
|
244 |
| -encryptionConfig); |
| 275 | +encryptionConfig, |
| 276 | +defaultLeader); |
245 | 277 | }
|
246 | 278 |
|
247 | 279 | @Override
|
248 | 280 | public String toString() {
|
249 | 281 | return String.format(
|
250 |
| -"Database[%s, %s, %s, %s, %s, %s, %s]", |
| 282 | +"Database[%s, %s, %s, %s, %s, %s, %s, %s]", |
251 | 283 | id.getName(),
|
252 | 284 | state,
|
253 | 285 | createTime,
|
254 | 286 | restoreInfo,
|
255 | 287 | versionRetentionPeriod,
|
256 | 288 | earliestVersionTime,
|
257 |
| -encryptionConfig); |
| 289 | +encryptionConfig, |
| 290 | +defaultLeader); |
258 | 291 | }
|
259 | 292 | }
|
0 commit comments