google-cloud-spanner-admin-database-v1 0.2.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,6 +45,50 @@ module Google
45
45
  "projects/#{project}/instances/#{instance}/backups/#{backup}"
46
46
  end
47
47
 
48
+ ##
49
+ # Create a fully-qualified CryptoKey resource string.
50
+ #
51
+ # The resource will be in the following format:
52
+ #
53
+ # `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`
54
+ #
55
+ # @param project [String]
56
+ # @param location [String]
57
+ # @param key_ring [String]
58
+ # @param crypto_key [String]
59
+ #
60
+ # @return [::String]
61
+ def crypto_key_path project:, location:, key_ring:, crypto_key:
62
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
63
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
64
+ raise ::ArgumentError, "key_ring cannot contain /" if key_ring.to_s.include? "/"
65
+
66
+ "projects/#{project}/locations/#{location}/keyRings/#{key_ring}/cryptoKeys/#{crypto_key}"
67
+ end
68
+
69
+ ##
70
+ # Create a fully-qualified CryptoKeyVersion resource string.
71
+ #
72
+ # The resource will be in the following format:
73
+ #
74
+ # `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}`
75
+ #
76
+ # @param project [String]
77
+ # @param location [String]
78
+ # @param key_ring [String]
79
+ # @param crypto_key [String]
80
+ # @param crypto_key_version [String]
81
+ #
82
+ # @return [::String]
83
+ def crypto_key_version_path project:, location:, key_ring:, crypto_key:, crypto_key_version:
84
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
85
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
86
+ raise ::ArgumentError, "key_ring cannot contain /" if key_ring.to_s.include? "/"
87
+ raise ::ArgumentError, "crypto_key cannot contain /" if crypto_key.to_s.include? "/"
88
+
89
+ "projects/#{project}/locations/#{location}/keyRings/#{key_ring}/cryptoKeys/#{crypto_key}/cryptoKeyVersions/#{crypto_key_version}"
90
+ end
91
+
48
92
  ##
49
93
  # Create a fully-qualified Database resource string.
50
94
  #
@@ -23,7 +23,7 @@ module Google
23
23
  module Admin
24
24
  module Database
25
25
  module V1
26
- VERSION = "0.2.1"
26
+ VERSION = "0.6.0"
27
27
  end
28
28
  end
29
29
  end
@@ -14,12 +14,14 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
14
14
  add_file("google/spanner/admin/database/v1/backup.proto", :syntax => :proto3) do
15
15
  add_message "google.spanner.admin.database.v1.Backup" do
16
16
  optional :database, :string, 2
17
+ optional :version_time, :message, 9, "google.protobuf.Timestamp"
17
18
  optional :expire_time, :message, 3, "google.protobuf.Timestamp"
18
19
  optional :name, :string, 1
19
20
  optional :create_time, :message, 4, "google.protobuf.Timestamp"
20
21
  optional :size_bytes, :int64, 5
21
22
  optional :state, :enum, 6, "google.spanner.admin.database.v1.Backup.State"
22
23
  repeated :referencing_databases, :string, 7
24
+ optional :encryption_info, :message, 8, "google.spanner.admin.database.v1.EncryptionInfo"
23
25
  end
24
26
  add_enum "google.spanner.admin.database.v1.Backup.State" do
25
27
  value :STATE_UNSPECIFIED, 0
@@ -30,6 +32,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
30
32
  optional :parent, :string, 1
31
33
  optional :backup_id, :string, 2
32
34
  optional :backup, :message, 3, "google.spanner.admin.database.v1.Backup"
35
+ optional :encryption_config, :message, 4, "google.spanner.admin.database.v1.CreateBackupEncryptionConfig"
33
36
  end
34
37
  add_message "google.spanner.admin.database.v1.CreateBackupMetadata" do
35
38
  optional :name, :string, 1
@@ -69,9 +72,20 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
69
72
  end
70
73
  add_message "google.spanner.admin.database.v1.BackupInfo" do
71
74
  optional :backup, :string, 1
75
+ optional :version_time, :message, 4, "google.protobuf.Timestamp"
72
76
  optional :create_time, :message, 2, "google.protobuf.Timestamp"
73
77
  optional :source_database, :string, 3
74
78
  end
79
+ add_message "google.spanner.admin.database.v1.CreateBackupEncryptionConfig" do
80
+ optional :encryption_type, :enum, 1, "google.spanner.admin.database.v1.CreateBackupEncryptionConfig.EncryptionType"
81
+ optional :kms_key_name, :string, 2
82
+ end
83
+ add_enum "google.spanner.admin.database.v1.CreateBackupEncryptionConfig.EncryptionType" do
84
+ value :ENCRYPTION_TYPE_UNSPECIFIED, 0
85
+ value :USE_DATABASE_ENCRYPTION, 1
86
+ value :GOOGLE_DEFAULT_ENCRYPTION, 2
87
+ value :CUSTOMER_MANAGED_ENCRYPTION, 3
88
+ end
75
89
  end
76
90
  end
77
91
 
@@ -93,6 +107,8 @@ module Google
93
107
  ListBackupOperationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.ListBackupOperationsRequest").msgclass
94
108
  ListBackupOperationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.ListBackupOperationsResponse").msgclass
95
109
  BackupInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.BackupInfo").msgclass
110
+ CreateBackupEncryptionConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.CreateBackupEncryptionConfig").msgclass
111
+ CreateBackupEncryptionConfig::EncryptionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.CreateBackupEncryptionConfig.EncryptionType").enummodule
96
112
  end
97
113
  end
98
114
  end
@@ -4,7 +4,9 @@
4
4
  require 'google/protobuf'
5
5
 
6
6
  require 'google/api/field_behavior_pb'
7
+ require 'google/api/resource_pb'
7
8
  require 'google/protobuf/timestamp_pb'
9
+ require 'google/rpc/status_pb'
8
10
  require 'google/api/annotations_pb'
9
11
  Google::Protobuf::DescriptorPool.generated_pool.build do
10
12
  add_file("google/spanner/admin/database/v1/common.proto", :syntax => :proto3) do
@@ -13,6 +15,19 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
13
15
  optional :start_time, :message, 2, "google.protobuf.Timestamp"
14
16
  optional :end_time, :message, 3, "google.protobuf.Timestamp"
15
17
  end
18
+ add_message "google.spanner.admin.database.v1.EncryptionConfig" do
19
+ optional :kms_key_name, :string, 2
20
+ end
21
+ add_message "google.spanner.admin.database.v1.EncryptionInfo" do
22
+ optional :encryption_type, :enum, 3, "google.spanner.admin.database.v1.EncryptionInfo.Type"
23
+ optional :encryption_status, :message, 4, "google.rpc.Status"
24
+ optional :kms_key_version, :string, 2
25
+ end
26
+ add_enum "google.spanner.admin.database.v1.EncryptionInfo.Type" do
27
+ value :TYPE_UNSPECIFIED, 0
28
+ value :GOOGLE_DEFAULT_ENCRYPTION, 1
29
+ value :CUSTOMER_MANAGED_ENCRYPTION, 2
30
+ end
16
31
  end
17
32
  end
18
33
 
@@ -23,6 +38,9 @@ module Google
23
38
  module Database
24
39
  module V1
25
40
  OperationProgress = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.OperationProgress").msgclass
41
+ EncryptionConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.EncryptionConfig").msgclass
42
+ EncryptionInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.EncryptionInfo").msgclass
43
+ EncryptionInfo::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.EncryptionInfo.Type").enummodule
26
44
  end
27
45
  end
28
46
  end
@@ -27,6 +27,10 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
27
27
  optional :state, :enum, 2, "google.spanner.admin.database.v1.Database.State"
28
28
  optional :create_time, :message, 3, "google.protobuf.Timestamp"
29
29
  optional :restore_info, :message, 4, "google.spanner.admin.database.v1.RestoreInfo"
30
+ optional :encryption_config, :message, 5, "google.spanner.admin.database.v1.EncryptionConfig"
31
+ repeated :encryption_info, :message, 8, "google.spanner.admin.database.v1.EncryptionInfo"
32
+ optional :version_retention_period, :string, 6
33
+ optional :earliest_version_time, :message, 7, "google.protobuf.Timestamp"
30
34
  end
31
35
  add_enum "google.spanner.admin.database.v1.Database.State" do
32
36
  value :STATE_UNSPECIFIED, 0
@@ -47,6 +51,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
47
51
  optional :parent, :string, 1
48
52
  optional :create_statement, :string, 2
49
53
  repeated :extra_statements, :string, 3
54
+ optional :encryption_config, :message, 4, "google.spanner.admin.database.v1.EncryptionConfig"
50
55
  end
51
56
  add_message "google.spanner.admin.database.v1.CreateDatabaseMetadata" do
52
57
  optional :database, :string, 1
@@ -64,6 +69,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
64
69
  repeated :statements, :string, 2
65
70
  repeated :commit_timestamps, :message, 3, "google.protobuf.Timestamp"
66
71
  optional :throttled, :bool, 4
72
+ repeated :progress, :message, 5, "google.spanner.admin.database.v1.OperationProgress"
67
73
  end
68
74
  add_message "google.spanner.admin.database.v1.DropDatabaseRequest" do
69
75
  optional :database, :string, 1
@@ -87,10 +93,21 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
87
93
  add_message "google.spanner.admin.database.v1.RestoreDatabaseRequest" do
88
94
  optional :parent, :string, 1
89
95
  optional :database_id, :string, 2
96
+ optional :encryption_config, :message, 4, "google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig"
90
97
  oneof :source do
91
98
  optional :backup, :string, 3
92
99
  end
93
100
  end
101
+ add_message "google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig" do
102
+ optional :encryption_type, :enum, 1, "google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig.EncryptionType"
103
+ optional :kms_key_name, :string, 2
104
+ end
105
+ add_enum "google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig.EncryptionType" do
106
+ value :ENCRYPTION_TYPE_UNSPECIFIED, 0
107
+ value :USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION, 1
108
+ value :GOOGLE_DEFAULT_ENCRYPTION, 2
109
+ value :CUSTOMER_MANAGED_ENCRYPTION, 3
110
+ end
94
111
  add_message "google.spanner.admin.database.v1.RestoreDatabaseMetadata" do
95
112
  optional :name, :string, 1
96
113
  optional :source_type, :enum, 2, "google.spanner.admin.database.v1.RestoreSourceType"
@@ -134,6 +151,8 @@ module Google
134
151
  ListDatabaseOperationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.ListDatabaseOperationsRequest").msgclass
135
152
  ListDatabaseOperationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.ListDatabaseOperationsResponse").msgclass
136
153
  RestoreDatabaseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.RestoreDatabaseRequest").msgclass
154
+ RestoreDatabaseEncryptionConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig").msgclass
155
+ RestoreDatabaseEncryptionConfig::EncryptionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.RestoreDatabaseEncryptionConfig.EncryptionType").enummodule
137
156
  RestoreDatabaseMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.RestoreDatabaseMetadata").msgclass
138
157
  OptimizeRestoredDatabaseMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata").msgclass
139
158
  RestoreSourceType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.spanner.admin.database.v1.RestoreSourceType").enummodule
@@ -54,6 +54,12 @@ module Google
54
54
  # This indicates that the field may be set once in a request to create a
55
55
  # resource, but may not be changed thereafter.
56
56
  IMMUTABLE = 5
57
+
58
+ # Denotes that a (repeated) field is an unordered list.
59
+ # This indicates that the service may provide the elements of the list
60
+ # in any arbitrary order, rather than the order the user originally
61
+ # provided. Additionally, the list's order may or may not be stable.
62
+ UNORDERED_LIST = 6
57
63
  end
58
64
  end
59
65
  end
@@ -25,7 +25,7 @@ module Google
25
25
  # @return [::String]
26
26
  # The server-assigned name, which is only unique within the same service that
27
27
  # originally returns it. If you use the default HTTP mapping, the
28
- # `name` should have the format of `operations/some/unique/name`.
28
+ # `name` should be a resource name ending with `operations/{unique_id}`.
29
29
  # @!attribute [rw] metadata
30
30
  # @return [::Google::Protobuf::Any]
31
31
  # Service-specific metadata associated with the operation. It typically
@@ -35,7 +35,7 @@ module Google
35
35
  # @!attribute [rw] done
36
36
  # @return [::Boolean]
37
37
  # If the value is `false`, it means the operation is still in progress.
38
- # If true, the operation is completed, and either `error` or `response` is
38
+ # If `true`, the operation is completed, and either `error` or `response` is
39
39
  # available.
40
40
  # @!attribute [rw] error
41
41
  # @return [::Google::Rpc::Status]
@@ -67,7 +67,7 @@ module Google
67
67
  # The request message for Operations.ListOperations.
68
68
  # @!attribute [rw] name
69
69
  # @return [::String]
70
- # The name of the operation collection.
70
+ # The name of the operation's parent resource.
71
71
  # @!attribute [rw] filter
72
72
  # @return [::String]
73
73
  # The standard list filter.
@@ -112,6 +112,20 @@ module Google
112
112
  extend ::Google::Protobuf::MessageExts::ClassMethods
113
113
  end
114
114
 
115
+ # The request message for Operations.WaitOperation.
116
+ # @!attribute [rw] name
117
+ # @return [::String]
118
+ # The name of the operation resource to wait on.
119
+ # @!attribute [rw] timeout
120
+ # @return [::Google::Protobuf::Duration]
121
+ # The maximum duration to wait before timing out. If left blank, the wait
122
+ # will be at most the time permitted by the underlying HTTP/RPC protocol.
123
+ # If RPC context deadline is also specified, the shorter one will be used.
124
+ class WaitOperationRequest
125
+ include ::Google::Protobuf::MessageExts
126
+ extend ::Google::Protobuf::MessageExts::ClassMethods
127
+ end
128
+
115
129
  # A message representing the message types used by a long-running operation.
116
130
  #
117
131
  # Example:
@@ -57,10 +57,13 @@ module Google
57
57
  # Example 4: Pack and unpack a message in Go
58
58
  #
59
59
  # foo := &pb.Foo{...}
60
- # any, err := ptypes.MarshalAny(foo)
60
+ # any, err := anypb.New(foo)
61
+ # if err != nil {
62
+ # ...
63
+ # }
61
64
  # ...
62
65
  # foo := &pb.Foo{}
63
- # if err := ptypes.UnmarshalAny(any, foo); err != nil {
66
+ # if err := any.UnmarshalTo(foo); err != nil {
64
67
  # ...
65
68
  # }
66
69
  #
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2021 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Protobuf
22
+ # A Duration represents a signed, fixed-length span of time represented
23
+ # as a count of seconds and fractions of seconds at nanosecond
24
+ # resolution. It is independent of any calendar and concepts like "day"
25
+ # or "month". It is related to Timestamp in that the difference between
26
+ # two Timestamp values is a Duration and it can be added or subtracted
27
+ # from a Timestamp. Range is approximately +-10,000 years.
28
+ #
29
+ # # Examples
30
+ #
31
+ # Example 1: Compute Duration from two Timestamps in pseudo code.
32
+ #
33
+ # Timestamp start = ...;
34
+ # Timestamp end = ...;
35
+ # Duration duration = ...;
36
+ #
37
+ # duration.seconds = end.seconds - start.seconds;
38
+ # duration.nanos = end.nanos - start.nanos;
39
+ #
40
+ # if (duration.seconds < 0 && duration.nanos > 0) {
41
+ # duration.seconds += 1;
42
+ # duration.nanos -= 1000000000;
43
+ # } else if (duration.seconds > 0 && duration.nanos < 0) {
44
+ # duration.seconds -= 1;
45
+ # duration.nanos += 1000000000;
46
+ # }
47
+ #
48
+ # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
49
+ #
50
+ # Timestamp start = ...;
51
+ # Duration duration = ...;
52
+ # Timestamp end = ...;
53
+ #
54
+ # end.seconds = start.seconds + duration.seconds;
55
+ # end.nanos = start.nanos + duration.nanos;
56
+ #
57
+ # if (end.nanos < 0) {
58
+ # end.seconds -= 1;
59
+ # end.nanos += 1000000000;
60
+ # } else if (end.nanos >= 1000000000) {
61
+ # end.seconds += 1;
62
+ # end.nanos -= 1000000000;
63
+ # }
64
+ #
65
+ # Example 3: Compute Duration from datetime.timedelta in Python.
66
+ #
67
+ # td = datetime.timedelta(days=3, minutes=10)
68
+ # duration = Duration()
69
+ # duration.FromTimedelta(td)
70
+ #
71
+ # # JSON Mapping
72
+ #
73
+ # In JSON format, the Duration type is encoded as a string rather than an
74
+ # object, where the string ends in the suffix "s" (indicating seconds) and
75
+ # is preceded by the number of seconds, with nanoseconds expressed as
76
+ # fractional seconds. For example, 3 seconds with 0 nanoseconds should be
77
+ # encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
78
+ # be expressed in JSON format as "3.000000001s", and 3 seconds and 1
79
+ # microsecond should be expressed in JSON format as "3.000001s".
80
+ # @!attribute [rw] seconds
81
+ # @return [::Integer]
82
+ # Signed seconds of the span of time. Must be from -315,576,000,000
83
+ # to +315,576,000,000 inclusive. Note: these bounds are computed from:
84
+ # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
85
+ # @!attribute [rw] nanos
86
+ # @return [::Integer]
87
+ # Signed fractions of a second at nanosecond resolution of the span
88
+ # of time. Durations less than one second are represented with a 0
89
+ # `seconds` field and a positive or negative `nanos` field. For durations
90
+ # of one second or more, a non-zero value for the `nanos` field must be
91
+ # of the same sign as the `seconds` field. Must be from -999,999,999
92
+ # to +999,999,999 inclusive.
93
+ class Duration
94
+ include ::Google::Protobuf::MessageExts
95
+ extend ::Google::Protobuf::MessageExts::ClassMethods
96
+ end
97
+ end
98
+ end
@@ -70,7 +70,16 @@ module Google
70
70
  # .setNanos((int) ((millis % 1000) * 1000000)).build();
71
71
  #
72
72
  #
73
- # Example 5: Compute Timestamp from current time in Python.
73
+ # Example 5: Compute Timestamp from Java `Instant.now()`.
74
+ #
75
+ # Instant now = Instant.now();
76
+ #
77
+ # Timestamp timestamp =
78
+ # Timestamp.newBuilder().setSeconds(now.getEpochSecond())
79
+ # .setNanos(now.getNano()).build();
80
+ #
81
+ #
82
+ # Example 6: Compute Timestamp from current time in Python.
74
83
  #
75
84
  # timestamp = Timestamp()
76
85
  # timestamp.GetCurrentTime()
@@ -31,6 +31,12 @@ module Google
31
31
  # created. This needs to be in the same instance as the backup.
32
32
  # Values are of the form
33
33
  # `projects/<project>/instances/<instance>/databases/<database>`.
34
+ # @!attribute [rw] version_time
35
+ # @return [::Google::Protobuf::Timestamp]
36
+ # The backup will contain an externally consistent copy of the database at
37
+ # the timestamp specified by `version_time`. If `version_time` is not
38
+ # specified, the system will set `version_time` to the `create_time` of the
39
+ # backup.
34
40
  # @!attribute [rw] expire_time
35
41
  # @return [::Google::Protobuf::Timestamp]
36
42
  # Required for the {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Client#create_backup CreateBackup}
@@ -56,10 +62,9 @@ module Google
56
62
  # `projects/<project>/instances/<instance>`.
57
63
  # @!attribute [r] create_time
58
64
  # @return [::Google::Protobuf::Timestamp]
59
- # Output only. The backup will contain an externally consistent
60
- # copy of the database at the timestamp specified by
61
- # `create_time`. `create_time` is approximately the time the
62
- # {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Client#create_backup CreateBackup} request is received.
65
+ # Output only. The time the {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Client#create_backup CreateBackup}
66
+ # request is received. If the request does not specify `version_time`, the
67
+ # `version_time` of the backup will be equivalent to the `create_time`.
63
68
  # @!attribute [r] size_bytes
64
69
  # @return [::Integer]
65
70
  # Output only. Size of the backup in bytes.
@@ -75,6 +80,9 @@ module Google
75
80
  # any referencing database prevents the backup from being deleted. When a
76
81
  # restored database from the backup enters the `READY` state, the reference
77
82
  # to the backup is removed.
83
+ # @!attribute [r] encryption_info
84
+ # @return [::Google::Cloud::Spanner::Admin::Database::V1::EncryptionInfo]
85
+ # Output only. The encryption information for the backup.
78
86
  class Backup
79
87
  include ::Google::Protobuf::MessageExts
80
88
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -110,6 +118,13 @@ module Google
110
118
  # @!attribute [rw] backup
111
119
  # @return [::Google::Cloud::Spanner::Admin::Database::V1::Backup]
112
120
  # Required. The backup to create.
121
+ # @!attribute [rw] encryption_config
122
+ # @return [::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupEncryptionConfig]
123
+ # Optional. The encryption configuration used to encrypt the backup. If this field is
124
+ # not specified, the backup will use the same
125
+ # encryption configuration as the database by default, namely
126
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupEncryptionConfig#encryption_type encryption_type} =
127
+ # `USE_DATABASE_ENCRYPTION`.
113
128
  class CreateBackupRequest
114
129
  include ::Google::Protobuf::MessageExts
115
130
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -138,7 +153,8 @@ module Google
138
153
  # other methods to check whether the cancellation succeeded or whether the
139
154
  # operation completed despite cancellation. On successful cancellation,
140
155
  # the operation is not deleted; instead, it becomes an operation with
141
- # an [Operation.error][] value with a {::Google::Rpc::Status#code google.rpc.Status.code} of 1,
156
+ # an {::Google::Longrunning::Operation#error Operation.error} value with a
157
+ # {::Google::Rpc::Status#code google.rpc.Status.code} of 1,
142
158
  # corresponding to `Code.CANCELLED`.
143
159
  class CreateBackupMetadata
144
160
  include ::Google::Protobuf::MessageExts
@@ -206,8 +222,9 @@ module Google
206
222
  # * `name`
207
223
  # * `database`
208
224
  # * `state`
209
- # * `create_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
210
- # * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
225
+ # * `create_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
226
+ # * `expire_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
227
+ # * `version_time` (and values are of the format YYYY-MM-DDTHH:MM:SSZ)
211
228
  # * `size_bytes`
212
229
  #
213
230
  # You can combine multiple expressions by enclosing each expression in
@@ -295,9 +312,9 @@ module Google
295
312
  # * `done:true` - The operation is complete.
296
313
  # * `metadata.database:prod` - The database the backup was taken from has
297
314
  # a name containing the string "prod".
298
- # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` <br/>
299
- # `(metadata.name:howl) AND` <br/>
300
- # `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` <br/>
315
+ # * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \
316
+ # `(metadata.name:howl) AND` \
317
+ # `(metadata.progress.start_time < \"2018-03-28T14:50:00Z\") AND` \
301
318
  # `(error:*)` - Returns operations where:
302
319
  # * The operation's metadata type is {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupMetadata CreateBackupMetadata}.
303
320
  # * The backup name contains the string "howl".
@@ -345,10 +362,17 @@ module Google
345
362
  # @!attribute [rw] backup
346
363
  # @return [::String]
347
364
  # Name of the backup.
348
- # @!attribute [rw] create_time
365
+ # @!attribute [rw] version_time
349
366
  # @return [::Google::Protobuf::Timestamp]
350
367
  # The backup contains an externally consistent copy of `source_database` at
351
- # the timestamp specified by `create_time`.
368
+ # the timestamp specified by `version_time`. If the
369
+ # {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Client#create_backup CreateBackup} request did not specify
370
+ # `version_time`, the `version_time` of the backup is equivalent to the
371
+ # `create_time`.
372
+ # @!attribute [rw] create_time
373
+ # @return [::Google::Protobuf::Timestamp]
374
+ # The time the {::Google::Cloud::Spanner::Admin::Database::V1::DatabaseAdmin::Client#create_backup CreateBackup} request was
375
+ # received.
352
376
  # @!attribute [rw] source_database
353
377
  # @return [::String]
354
378
  # Name of the database the backup was created from.
@@ -356,6 +380,42 @@ module Google
356
380
  include ::Google::Protobuf::MessageExts
357
381
  extend ::Google::Protobuf::MessageExts::ClassMethods
358
382
  end
383
+
384
+ # Encryption configuration for the backup to create.
385
+ # @!attribute [rw] encryption_type
386
+ # @return [::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupEncryptionConfig::EncryptionType]
387
+ # Required. The encryption type of the backup.
388
+ # @!attribute [rw] kms_key_name
389
+ # @return [::String]
390
+ # Optional. The Cloud KMS key that will be used to protect the backup.
391
+ # This field should be set only when
392
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupEncryptionConfig#encryption_type encryption_type} is
393
+ # `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form
394
+ # `projects/<project>/locations/<location>/keyRings/<key_ring>/cryptoKeys/<kms_key_name>`.
395
+ class CreateBackupEncryptionConfig
396
+ include ::Google::Protobuf::MessageExts
397
+ extend ::Google::Protobuf::MessageExts::ClassMethods
398
+
399
+ # Encryption types for the backup.
400
+ module EncryptionType
401
+ # Unspecified. Do not use.
402
+ ENCRYPTION_TYPE_UNSPECIFIED = 0
403
+
404
+ # Use the same encryption configuration as the database. This is the
405
+ # default option when
406
+ # {::Google::Cloud::Spanner::Admin::Database::V1::CreateBackupEncryptionConfig encryption_config} is empty.
407
+ # For example, if the database is using `Customer_Managed_Encryption`, the
408
+ # backup will be using the same Cloud KMS key as the database.
409
+ USE_DATABASE_ENCRYPTION = 1
410
+
411
+ # Use Google default encryption.
412
+ GOOGLE_DEFAULT_ENCRYPTION = 2
413
+
414
+ # Use customer managed encryption. If specified, `kms_key_name`
415
+ # must contain a valid Cloud KMS key.
416
+ CUSTOMER_MANAGED_ENCRYPTION = 3
417
+ end
418
+ end
359
419
  end
360
420
  end
361
421
  end