google-cloud-shell-v1 0.2.0 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ec341bf700c3a7d5840f720689c50043570b263aea32b8e798e5978a9db662f
4
- data.tar.gz: b3d8c0cf278d83abf6732ed9f9dbc9ba3e101831cc46bc0b01a0bae47eb7448a
3
+ metadata.gz: 8f0e3780f9fc577a110a78a3c4b21e78f7db4f03f6256eadc648e39a2af3c25a
4
+ data.tar.gz: 3b9c608fd2090308e9e3a5c31d1badfeedc32607e163e3d4ab9654d666164c0b
5
5
  SHA512:
6
- metadata.gz: 188ec80446b8c19d59b42f60da2d4819949b08724b9c04044f2dfa0f58a289ca23fda3833e3c414d39b730c70e931f8a0b74eabba3bc732eaf1c4c942420c11f
7
- data.tar.gz: cf39cda858e5e99c786b132411928a8de9950e3d490ffcd289ac9c1bce1c1546e5622203c1aa6a201acbf3a39736d3c466f56b0b706dc1e9d5008dc62f2ba3fa
6
+ metadata.gz: 85ed565a46ce08b7349d9e56bb4f7325327cfb16bfeb310efc1a9fa171cc42f99843c64b446ef03d26d6d698f44d514eee1b0ca82523c19d84c35b53a3c6cc59
7
+ data.tar.gz: 0750ba28b9b9cfe13ce4c033126621a4bdb3e1b32cae4c938b23c668b2c3a26bf39f42dead0cc8061148eab8265e6745a2c03f6d5ecdb6dfab724f3050ff5db5
data/AUTHENTICATION.md CHANGED
@@ -114,7 +114,7 @@ credentials are discovered.
114
114
  To configure your system for this, simply:
115
115
 
116
116
  1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
117
- 2. Authenticate using OAuth 2.0 `$ gcloud auth login`
117
+ 2. Authenticate using OAuth 2.0 `$ gcloud auth application-default login`
118
118
  3. Write code as if already authenticated.
119
119
 
120
120
  **NOTE:** This is _not_ recommended for running in production. The Cloud SDK
@@ -8,7 +8,6 @@ require 'google/api/client_pb'
8
8
  require 'google/api/field_behavior_pb'
9
9
  require 'google/api/resource_pb'
10
10
  require 'google/longrunning/operations_pb'
11
- require 'google/protobuf/field_mask_pb'
12
11
  require 'google/protobuf/timestamp_pb'
13
12
 
14
13
  Google::Protobuf::DescriptorPool.generated_pool.build do
@@ -92,6 +91,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
92
91
  value :CLOUD_SHELL_DISABLED, 2
93
92
  value :TOS_VIOLATION, 4
94
93
  value :QUOTA_EXCEEDED, 5
94
+ value :ENVIRONMENT_UNAVAILABLE, 6
95
95
  end
96
96
  end
97
97
  end
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Shell
23
23
  module V1
24
- VERSION = "0.2.0"
24
+ VERSION = "0.3.0"
25
25
  end
26
26
  end
27
27
  end
@@ -0,0 +1,318 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 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 Api
22
+ # Required information for every language.
23
+ # @!attribute [rw] reference_docs_uri
24
+ # @return [::String]
25
+ # Link to automatically generated reference documentation. Example:
26
+ # https://cloud.google.com/nodejs/docs/reference/asset/latest
27
+ # @!attribute [rw] destinations
28
+ # @return [::Array<::Google::Api::ClientLibraryDestination>]
29
+ # The destination where API teams want this client library to be published.
30
+ class CommonLanguageSettings
31
+ include ::Google::Protobuf::MessageExts
32
+ extend ::Google::Protobuf::MessageExts::ClassMethods
33
+ end
34
+
35
+ # Details about how and where to publish client libraries.
36
+ # @!attribute [rw] version
37
+ # @return [::String]
38
+ # Version of the API to apply these settings to.
39
+ # @!attribute [rw] launch_stage
40
+ # @return [::Google::Api::LaunchStage]
41
+ # Launch stage of this version of the API.
42
+ # @!attribute [rw] rest_numeric_enums
43
+ # @return [::Boolean]
44
+ # When using transport=rest, the client request will encode enums as
45
+ # numbers rather than strings.
46
+ # @!attribute [rw] java_settings
47
+ # @return [::Google::Api::JavaSettings]
48
+ # Settings for legacy Java features, supported in the Service YAML.
49
+ # @!attribute [rw] cpp_settings
50
+ # @return [::Google::Api::CppSettings]
51
+ # Settings for C++ client libraries.
52
+ # @!attribute [rw] php_settings
53
+ # @return [::Google::Api::PhpSettings]
54
+ # Settings for PHP client libraries.
55
+ # @!attribute [rw] python_settings
56
+ # @return [::Google::Api::PythonSettings]
57
+ # Settings for Python client libraries.
58
+ # @!attribute [rw] node_settings
59
+ # @return [::Google::Api::NodeSettings]
60
+ # Settings for Node client libraries.
61
+ # @!attribute [rw] dotnet_settings
62
+ # @return [::Google::Api::DotnetSettings]
63
+ # Settings for .NET client libraries.
64
+ # @!attribute [rw] ruby_settings
65
+ # @return [::Google::Api::RubySettings]
66
+ # Settings for Ruby client libraries.
67
+ # @!attribute [rw] go_settings
68
+ # @return [::Google::Api::GoSettings]
69
+ # Settings for Go client libraries.
70
+ class ClientLibrarySettings
71
+ include ::Google::Protobuf::MessageExts
72
+ extend ::Google::Protobuf::MessageExts::ClassMethods
73
+ end
74
+
75
+ # This message configures the settings for publishing [Google Cloud Client
76
+ # libraries](https://cloud.google.com/apis/docs/cloud-client-libraries)
77
+ # generated from the service config.
78
+ # @!attribute [rw] method_settings
79
+ # @return [::Array<::Google::Api::MethodSettings>]
80
+ # A list of API method settings, e.g. the behavior for methods that use the
81
+ # long-running operation pattern.
82
+ # @!attribute [rw] new_issue_uri
83
+ # @return [::String]
84
+ # Link to a place that API users can report issues. Example:
85
+ # https://issuetracker.google.com/issues/new?component=190865&template=1161103
86
+ # @!attribute [rw] documentation_uri
87
+ # @return [::String]
88
+ # Link to product home page. Example:
89
+ # https://cloud.google.com/asset-inventory/docs/overview
90
+ # @!attribute [rw] api_short_name
91
+ # @return [::String]
92
+ # Used as a tracking tag when collecting data about the APIs developer
93
+ # relations artifacts like docs, packages delivered to package managers,
94
+ # etc. Example: "speech".
95
+ # @!attribute [rw] github_label
96
+ # @return [::String]
97
+ # GitHub label to apply to issues and pull requests opened for this API.
98
+ # @!attribute [rw] codeowner_github_teams
99
+ # @return [::Array<::String>]
100
+ # GitHub teams to be added to CODEOWNERS in the directory in GitHub
101
+ # containing source code for the client libraries for this API.
102
+ # @!attribute [rw] doc_tag_prefix
103
+ # @return [::String]
104
+ # A prefix used in sample code when demarking regions to be included in
105
+ # documentation.
106
+ # @!attribute [rw] organization
107
+ # @return [::Google::Api::ClientLibraryOrganization]
108
+ # For whom the client library is being published.
109
+ # @!attribute [rw] library_settings
110
+ # @return [::Array<::Google::Api::ClientLibrarySettings>]
111
+ # Client library settings. If the same version string appears multiple
112
+ # times in this list, then the last one wins. Settings from earlier
113
+ # settings with the same version string are discarded.
114
+ class Publishing
115
+ include ::Google::Protobuf::MessageExts
116
+ extend ::Google::Protobuf::MessageExts::ClassMethods
117
+ end
118
+
119
+ # Settings for Java client libraries.
120
+ # @!attribute [rw] library_package
121
+ # @return [::String]
122
+ # The package name to use in Java. Clobbers the java_package option
123
+ # set in the protobuf. This should be used **only** by APIs
124
+ # who have already set the language_settings.java.package_name" field
125
+ # in gapic.yaml. API teams should use the protobuf java_package option
126
+ # where possible.
127
+ #
128
+ # Example of a YAML configuration::
129
+ #
130
+ # publishing:
131
+ # java_settings:
132
+ # library_package: com.google.cloud.pubsub.v1
133
+ # @!attribute [rw] service_class_names
134
+ # @return [::Google::Protobuf::Map{::String => ::String}]
135
+ # Configure the Java class name to use instead of the service's for its
136
+ # corresponding generated GAPIC client. Keys are fully-qualified
137
+ # service names as they appear in the protobuf (including the full
138
+ # the language_settings.java.interface_names" field in gapic.yaml. API
139
+ # teams should otherwise use the service name as it appears in the
140
+ # protobuf.
141
+ #
142
+ # Example of a YAML configuration::
143
+ #
144
+ # publishing:
145
+ # java_settings:
146
+ # service_class_names:
147
+ # - google.pubsub.v1.Publisher: TopicAdmin
148
+ # - google.pubsub.v1.Subscriber: SubscriptionAdmin
149
+ # @!attribute [rw] common
150
+ # @return [::Google::Api::CommonLanguageSettings]
151
+ # Some settings.
152
+ class JavaSettings
153
+ include ::Google::Protobuf::MessageExts
154
+ extend ::Google::Protobuf::MessageExts::ClassMethods
155
+
156
+ # @!attribute [rw] key
157
+ # @return [::String]
158
+ # @!attribute [rw] value
159
+ # @return [::String]
160
+ class ServiceClassNamesEntry
161
+ include ::Google::Protobuf::MessageExts
162
+ extend ::Google::Protobuf::MessageExts::ClassMethods
163
+ end
164
+ end
165
+
166
+ # Settings for C++ client libraries.
167
+ # @!attribute [rw] common
168
+ # @return [::Google::Api::CommonLanguageSettings]
169
+ # Some settings.
170
+ class CppSettings
171
+ include ::Google::Protobuf::MessageExts
172
+ extend ::Google::Protobuf::MessageExts::ClassMethods
173
+ end
174
+
175
+ # Settings for Php client libraries.
176
+ # @!attribute [rw] common
177
+ # @return [::Google::Api::CommonLanguageSettings]
178
+ # Some settings.
179
+ class PhpSettings
180
+ include ::Google::Protobuf::MessageExts
181
+ extend ::Google::Protobuf::MessageExts::ClassMethods
182
+ end
183
+
184
+ # Settings for Python client libraries.
185
+ # @!attribute [rw] common
186
+ # @return [::Google::Api::CommonLanguageSettings]
187
+ # Some settings.
188
+ class PythonSettings
189
+ include ::Google::Protobuf::MessageExts
190
+ extend ::Google::Protobuf::MessageExts::ClassMethods
191
+ end
192
+
193
+ # Settings for Node client libraries.
194
+ # @!attribute [rw] common
195
+ # @return [::Google::Api::CommonLanguageSettings]
196
+ # Some settings.
197
+ class NodeSettings
198
+ include ::Google::Protobuf::MessageExts
199
+ extend ::Google::Protobuf::MessageExts::ClassMethods
200
+ end
201
+
202
+ # Settings for Dotnet client libraries.
203
+ # @!attribute [rw] common
204
+ # @return [::Google::Api::CommonLanguageSettings]
205
+ # Some settings.
206
+ class DotnetSettings
207
+ include ::Google::Protobuf::MessageExts
208
+ extend ::Google::Protobuf::MessageExts::ClassMethods
209
+ end
210
+
211
+ # Settings for Ruby client libraries.
212
+ # @!attribute [rw] common
213
+ # @return [::Google::Api::CommonLanguageSettings]
214
+ # Some settings.
215
+ class RubySettings
216
+ include ::Google::Protobuf::MessageExts
217
+ extend ::Google::Protobuf::MessageExts::ClassMethods
218
+ end
219
+
220
+ # Settings for Go client libraries.
221
+ # @!attribute [rw] common
222
+ # @return [::Google::Api::CommonLanguageSettings]
223
+ # Some settings.
224
+ class GoSettings
225
+ include ::Google::Protobuf::MessageExts
226
+ extend ::Google::Protobuf::MessageExts::ClassMethods
227
+ end
228
+
229
+ # Describes the generator configuration for a method.
230
+ # @!attribute [rw] selector
231
+ # @return [::String]
232
+ # The fully qualified name of the method, for which the options below apply.
233
+ # This is used to find the method to apply the options.
234
+ # @!attribute [rw] long_running
235
+ # @return [::Google::Api::MethodSettings::LongRunning]
236
+ # Describes settings to use for long-running operations when generating
237
+ # API methods for RPCs. Complements RPCs that use the annotations in
238
+ # google/longrunning/operations.proto.
239
+ #
240
+ # Example of a YAML configuration::
241
+ #
242
+ # publishing:
243
+ # method_behavior:
244
+ # - selector: CreateAdDomain
245
+ # long_running:
246
+ # initial_poll_delay:
247
+ # seconds: 60 # 1 minute
248
+ # poll_delay_multiplier: 1.5
249
+ # max_poll_delay:
250
+ # seconds: 360 # 6 minutes
251
+ # total_poll_timeout:
252
+ # seconds: 54000 # 90 minutes
253
+ class MethodSettings
254
+ include ::Google::Protobuf::MessageExts
255
+ extend ::Google::Protobuf::MessageExts::ClassMethods
256
+
257
+ # Describes settings to use when generating API methods that use the
258
+ # long-running operation pattern.
259
+ # All default values below are from those used in the client library
260
+ # generators (e.g.
261
+ # [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).
262
+ # @!attribute [rw] initial_poll_delay
263
+ # @return [::Google::Protobuf::Duration]
264
+ # Initial delay after which the first poll request will be made.
265
+ # Default value: 5 seconds.
266
+ # @!attribute [rw] poll_delay_multiplier
267
+ # @return [::Float]
268
+ # Multiplier to gradually increase delay between subsequent polls until it
269
+ # reaches max_poll_delay.
270
+ # Default value: 1.5.
271
+ # @!attribute [rw] max_poll_delay
272
+ # @return [::Google::Protobuf::Duration]
273
+ # Maximum time between two subsequent poll requests.
274
+ # Default value: 45 seconds.
275
+ # @!attribute [rw] total_poll_timeout
276
+ # @return [::Google::Protobuf::Duration]
277
+ # Total polling timeout.
278
+ # Default value: 5 minutes.
279
+ class LongRunning
280
+ include ::Google::Protobuf::MessageExts
281
+ extend ::Google::Protobuf::MessageExts::ClassMethods
282
+ end
283
+ end
284
+
285
+ # The organization for which the client libraries are being published.
286
+ # Affects the url where generated docs are published, etc.
287
+ module ClientLibraryOrganization
288
+ # Not useful.
289
+ CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0
290
+
291
+ # Google Cloud Platform Org.
292
+ CLOUD = 1
293
+
294
+ # Ads (Advertising) Org.
295
+ ADS = 2
296
+
297
+ # Photos Org.
298
+ PHOTOS = 3
299
+
300
+ # Street View Org.
301
+ STREET_VIEW = 4
302
+ end
303
+
304
+ # To where should client libraries be published?
305
+ module ClientLibraryDestination
306
+ # Client libraries will neither be generated nor published to package
307
+ # managers.
308
+ CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0
309
+
310
+ # Generate the client library in a repo under github.com/googleapis,
311
+ # but don't publish it to package managers.
312
+ GITHUB = 10
313
+
314
+ # Publish the library to package managers like nuget.org and npmjs.com.
315
+ PACKAGE_MANAGER = 20
316
+ end
317
+ end
318
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 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 Api
22
+ # The launch stage as defined by [Google Cloud Platform
23
+ # Launch Stages](https://cloud.google.com/terms/launch-stages).
24
+ module LaunchStage
25
+ # Do not use this default value.
26
+ LAUNCH_STAGE_UNSPECIFIED = 0
27
+
28
+ # The feature is not yet implemented. Users can not use it.
29
+ UNIMPLEMENTED = 6
30
+
31
+ # Prelaunch features are hidden from users and are only visible internally.
32
+ PRELAUNCH = 7
33
+
34
+ # Early Access features are limited to a closed group of testers. To use
35
+ # these features, you must sign up in advance and sign a Trusted Tester
36
+ # agreement (which includes confidentiality provisions). These features may
37
+ # be unstable, changed in backward-incompatible ways, and are not
38
+ # guaranteed to be released.
39
+ EARLY_ACCESS = 1
40
+
41
+ # Alpha is a limited availability test for releases before they are cleared
42
+ # for widespread use. By Alpha, all significant design issues are resolved
43
+ # and we are in the process of verifying functionality. Alpha customers
44
+ # need to apply for access, agree to applicable terms, and have their
45
+ # projects allowlisted. Alpha releases don't have to be feature complete,
46
+ # no SLAs are provided, and there are no technical support obligations, but
47
+ # they will be far enough along that customers can actually use them in
48
+ # test environments or for limited-use tests -- just like they would in
49
+ # normal production cases.
50
+ ALPHA = 2
51
+
52
+ # Beta is the point at which we are ready to open a release for any
53
+ # customer to use. There are no SLA or technical support obligations in a
54
+ # Beta release. Products will be complete from a feature perspective, but
55
+ # may have some open outstanding issues. Beta releases are suitable for
56
+ # limited production use cases.
57
+ BETA = 3
58
+
59
+ # GA features are open to all developers and are considered stable and
60
+ # fully qualified for production use.
61
+ GA = 4
62
+
63
+ # Deprecated features are scheduled to be shut down and removed. For more
64
+ # information, see the "Deprecation Policy" section of our [Terms of
65
+ # Service](https://cloud.google.com/terms/)
66
+ # and the [Google Cloud Platform Subject to the Deprecation
67
+ # Policy](https://cloud.google.com/terms/deprecation) documentation.
68
+ DEPRECATED = 5
69
+ end
70
+ end
71
+ end
@@ -319,6 +319,10 @@ module Google
319
319
  # The user has exhausted their weekly Cloud Shell quota, and Cloud Shell
320
320
  # will be disabled until the quota resets.
321
321
  QUOTA_EXCEEDED = 5
322
+
323
+ # The Cloud Shell environment is unavailable and cannot be connected to at
324
+ # the moment.
325
+ ENVIRONMENT_UNAVAILABLE = 6
322
326
  end
323
327
  end
324
328
  end
@@ -26,8 +26,6 @@ module Google
26
26
  # service Foo {
27
27
  # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
28
28
  # }
29
- #
30
- # The JSON representation for `Empty` is empty JSON object `{}`.
31
29
  class Empty
32
30
  include ::Google::Protobuf::MessageExts
33
31
  extend ::Google::Protobuf::MessageExts::ClassMethods
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-shell-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-08 00:00:00.000000000 Z
11
+ date: 2022-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.10'
19
+ version: '0.12'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.a
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '0.10'
29
+ version: '0.12'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.a
@@ -181,14 +181,15 @@ files:
181
181
  - lib/google/cloud/shell/v1/cloudshell_services_pb.rb
182
182
  - lib/google/cloud/shell/v1/version.rb
183
183
  - proto_docs/README.md
184
+ - proto_docs/google/api/client.rb
184
185
  - proto_docs/google/api/field_behavior.rb
186
+ - proto_docs/google/api/launch_stage.rb
185
187
  - proto_docs/google/api/resource.rb
186
188
  - proto_docs/google/cloud/shell/v1/cloudshell.rb
187
189
  - proto_docs/google/longrunning/operations.rb
188
190
  - proto_docs/google/protobuf/any.rb
189
191
  - proto_docs/google/protobuf/duration.rb
190
192
  - proto_docs/google/protobuf/empty.rb
191
- - proto_docs/google/protobuf/field_mask.rb
192
193
  - proto_docs/google/protobuf/timestamp.rb
193
194
  - proto_docs/google/rpc/status.rb
194
195
  homepage: https://github.com/googleapis/google-cloud-ruby
@@ -1,229 +0,0 @@
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
- # `FieldMask` represents a set of symbolic field paths, for example:
23
- #
24
- # paths: "f.a"
25
- # paths: "f.b.d"
26
- #
27
- # Here `f` represents a field in some root message, `a` and `b`
28
- # fields in the message found in `f`, and `d` a field found in the
29
- # message in `f.b`.
30
- #
31
- # Field masks are used to specify a subset of fields that should be
32
- # returned by a get operation or modified by an update operation.
33
- # Field masks also have a custom JSON encoding (see below).
34
- #
35
- # # Field Masks in Projections
36
- #
37
- # When used in the context of a projection, a response message or
38
- # sub-message is filtered by the API to only contain those fields as
39
- # specified in the mask. For example, if the mask in the previous
40
- # example is applied to a response message as follows:
41
- #
42
- # f {
43
- # a : 22
44
- # b {
45
- # d : 1
46
- # x : 2
47
- # }
48
- # y : 13
49
- # }
50
- # z: 8
51
- #
52
- # The result will not contain specific values for fields x,y and z
53
- # (their value will be set to the default, and omitted in proto text
54
- # output):
55
- #
56
- #
57
- # f {
58
- # a : 22
59
- # b {
60
- # d : 1
61
- # }
62
- # }
63
- #
64
- # A repeated field is not allowed except at the last position of a
65
- # paths string.
66
- #
67
- # If a FieldMask object is not present in a get operation, the
68
- # operation applies to all fields (as if a FieldMask of all fields
69
- # had been specified).
70
- #
71
- # Note that a field mask does not necessarily apply to the
72
- # top-level response message. In case of a REST get operation, the
73
- # field mask applies directly to the response, but in case of a REST
74
- # list operation, the mask instead applies to each individual message
75
- # in the returned resource list. In case of a REST custom method,
76
- # other definitions may be used. Where the mask applies will be
77
- # clearly documented together with its declaration in the API. In
78
- # any case, the effect on the returned resource/resources is required
79
- # behavior for APIs.
80
- #
81
- # # Field Masks in Update Operations
82
- #
83
- # A field mask in update operations specifies which fields of the
84
- # targeted resource are going to be updated. The API is required
85
- # to only change the values of the fields as specified in the mask
86
- # and leave the others untouched. If a resource is passed in to
87
- # describe the updated values, the API ignores the values of all
88
- # fields not covered by the mask.
89
- #
90
- # If a repeated field is specified for an update operation, new values will
91
- # be appended to the existing repeated field in the target resource. Note that
92
- # a repeated field is only allowed in the last position of a `paths` string.
93
- #
94
- # If a sub-message is specified in the last position of the field mask for an
95
- # update operation, then new value will be merged into the existing sub-message
96
- # in the target resource.
97
- #
98
- # For example, given the target message:
99
- #
100
- # f {
101
- # b {
102
- # d: 1
103
- # x: 2
104
- # }
105
- # c: [1]
106
- # }
107
- #
108
- # And an update message:
109
- #
110
- # f {
111
- # b {
112
- # d: 10
113
- # }
114
- # c: [2]
115
- # }
116
- #
117
- # then if the field mask is:
118
- #
119
- # paths: ["f.b", "f.c"]
120
- #
121
- # then the result will be:
122
- #
123
- # f {
124
- # b {
125
- # d: 10
126
- # x: 2
127
- # }
128
- # c: [1, 2]
129
- # }
130
- #
131
- # An implementation may provide options to override this default behavior for
132
- # repeated and message fields.
133
- #
134
- # In order to reset a field's value to the default, the field must
135
- # be in the mask and set to the default value in the provided resource.
136
- # Hence, in order to reset all fields of a resource, provide a default
137
- # instance of the resource and set all fields in the mask, or do
138
- # not provide a mask as described below.
139
- #
140
- # If a field mask is not present on update, the operation applies to
141
- # all fields (as if a field mask of all fields has been specified).
142
- # Note that in the presence of schema evolution, this may mean that
143
- # fields the client does not know and has therefore not filled into
144
- # the request will be reset to their default. If this is unwanted
145
- # behavior, a specific service may require a client to always specify
146
- # a field mask, producing an error if not.
147
- #
148
- # As with get operations, the location of the resource which
149
- # describes the updated values in the request message depends on the
150
- # operation kind. In any case, the effect of the field mask is
151
- # required to be honored by the API.
152
- #
153
- # ## Considerations for HTTP REST
154
- #
155
- # The HTTP kind of an update operation which uses a field mask must
156
- # be set to PATCH instead of PUT in order to satisfy HTTP semantics
157
- # (PUT must only be used for full updates).
158
- #
159
- # # JSON Encoding of Field Masks
160
- #
161
- # In JSON, a field mask is encoded as a single string where paths are
162
- # separated by a comma. Fields name in each path are converted
163
- # to/from lower-camel naming conventions.
164
- #
165
- # As an example, consider the following message declarations:
166
- #
167
- # message Profile {
168
- # User user = 1;
169
- # Photo photo = 2;
170
- # }
171
- # message User {
172
- # string display_name = 1;
173
- # string address = 2;
174
- # }
175
- #
176
- # In proto a field mask for `Profile` may look as such:
177
- #
178
- # mask {
179
- # paths: "user.display_name"
180
- # paths: "photo"
181
- # }
182
- #
183
- # In JSON, the same mask is represented as below:
184
- #
185
- # {
186
- # mask: "user.displayName,photo"
187
- # }
188
- #
189
- # # Field Masks and Oneof Fields
190
- #
191
- # Field masks treat fields in oneofs just as regular fields. Consider the
192
- # following message:
193
- #
194
- # message SampleMessage {
195
- # oneof test_oneof {
196
- # string name = 4;
197
- # SubMessage sub_message = 9;
198
- # }
199
- # }
200
- #
201
- # The field mask can be:
202
- #
203
- # mask {
204
- # paths: "name"
205
- # }
206
- #
207
- # Or:
208
- #
209
- # mask {
210
- # paths: "sub_message"
211
- # }
212
- #
213
- # Note that oneof type names ("test_oneof" in this case) cannot be used in
214
- # paths.
215
- #
216
- # ## Field Mask Verification
217
- #
218
- # The implementation of any API method which has a FieldMask type field in the
219
- # request should verify the included field paths, and return an
220
- # `INVALID_ARGUMENT` error if any path is unmappable.
221
- # @!attribute [rw] paths
222
- # @return [::Array<::String>]
223
- # The set of field mask paths.
224
- class FieldMask
225
- include ::Google::Protobuf::MessageExts
226
- extend ::Google::Protobuf::MessageExts::ClassMethods
227
- end
228
- end
229
- end