google-cloud-resource_manager-v3 0.1.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.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +169 -0
  4. data/LICENSE.md +201 -0
  5. data/README.md +139 -0
  6. data/lib/google-cloud-resource_manager-v3.rb +21 -0
  7. data/lib/google/cloud/resource_manager/v3.rb +43 -0
  8. data/lib/google/cloud/resource_manager/v3/folders.rb +52 -0
  9. data/lib/google/cloud/resource_manager/v3/folders/client.rb +1328 -0
  10. data/lib/google/cloud/resource_manager/v3/folders/credentials.rb +52 -0
  11. data/lib/google/cloud/resource_manager/v3/folders/operations.rb +664 -0
  12. data/lib/google/cloud/resource_manager/v3/folders/paths.rb +47 -0
  13. data/lib/google/cloud/resource_manager/v3/organizations.rb +49 -0
  14. data/lib/google/cloud/resource_manager/v3/organizations/client.rb +739 -0
  15. data/lib/google/cloud/resource_manager/v3/organizations/credentials.rb +52 -0
  16. data/lib/google/cloud/resource_manager/v3/organizations/paths.rb +47 -0
  17. data/lib/google/cloud/resource_manager/v3/projects.rb +50 -0
  18. data/lib/google/cloud/resource_manager/v3/projects/client.rb +1356 -0
  19. data/lib/google/cloud/resource_manager/v3/projects/credentials.rb +52 -0
  20. data/lib/google/cloud/resource_manager/v3/projects/operations.rb +664 -0
  21. data/lib/google/cloud/resource_manager/v3/projects/paths.rb +47 -0
  22. data/lib/google/cloud/resource_manager/v3/tag_bindings.rb +51 -0
  23. data/lib/google/cloud/resource_manager/v3/tag_bindings/client.rb +552 -0
  24. data/lib/google/cloud/resource_manager/v3/tag_bindings/credentials.rb +52 -0
  25. data/lib/google/cloud/resource_manager/v3/tag_bindings/operations.rb +664 -0
  26. data/lib/google/cloud/resource_manager/v3/tag_bindings/paths.rb +47 -0
  27. data/lib/google/cloud/resource_manager/v3/tag_keys.rb +50 -0
  28. data/lib/google/cloud/resource_manager/v3/tag_keys/client.rb +987 -0
  29. data/lib/google/cloud/resource_manager/v3/tag_keys/credentials.rb +52 -0
  30. data/lib/google/cloud/resource_manager/v3/tag_keys/operations.rb +664 -0
  31. data/lib/google/cloud/resource_manager/v3/tag_keys/paths.rb +47 -0
  32. data/lib/google/cloud/resource_manager/v3/tag_values.rb +50 -0
  33. data/lib/google/cloud/resource_manager/v3/tag_values/client.rb +983 -0
  34. data/lib/google/cloud/resource_manager/v3/tag_values/credentials.rb +52 -0
  35. data/lib/google/cloud/resource_manager/v3/tag_values/operations.rb +664 -0
  36. data/lib/google/cloud/resource_manager/v3/tag_values/paths.rb +47 -0
  37. data/lib/google/cloud/resource_manager/v3/version.rb +28 -0
  38. data/lib/google/cloud/resourcemanager/v3/folders_pb.rb +113 -0
  39. data/lib/google/cloud/resourcemanager/v3/folders_services_pb.rb +166 -0
  40. data/lib/google/cloud/resourcemanager/v3/organizations_pb.rb +66 -0
  41. data/lib/google/cloud/resourcemanager/v3/organizations_services_pb.rb +73 -0
  42. data/lib/google/cloud/resourcemanager/v3/projects_pb.rb +113 -0
  43. data/lib/google/cloud/resourcemanager/v3/projects_services_pb.rb +187 -0
  44. data/lib/google/cloud/resourcemanager/v3/tag_bindings_pb.rb +55 -0
  45. data/lib/google/cloud/resourcemanager/v3/tag_bindings_services_pb.rb +55 -0
  46. data/lib/google/cloud/resourcemanager/v3/tag_keys_pb.rb +79 -0
  47. data/lib/google/cloud/resourcemanager/v3/tag_keys_services_pb.rb +77 -0
  48. data/lib/google/cloud/resourcemanager/v3/tag_values_pb.rb +79 -0
  49. data/lib/google/cloud/resourcemanager/v3/tag_values_services_pb.rb +78 -0
  50. data/proto_docs/README.md +4 -0
  51. data/proto_docs/google/api/field_behavior.rb +71 -0
  52. data/proto_docs/google/api/resource.rb +283 -0
  53. data/proto_docs/google/cloud/resourcemanager/v3/folders.rb +307 -0
  54. data/proto_docs/google/cloud/resourcemanager/v3/organizations.rb +152 -0
  55. data/proto_docs/google/cloud/resourcemanager/v3/projects.rb +395 -0
  56. data/proto_docs/google/cloud/resourcemanager/v3/tag_bindings.rb +127 -0
  57. data/proto_docs/google/cloud/resourcemanager/v3/tag_keys.rb +181 -0
  58. data/proto_docs/google/cloud/resourcemanager/v3/tag_values.rb +179 -0
  59. data/proto_docs/google/iam/v1/iam_policy.rb +80 -0
  60. data/proto_docs/google/iam/v1/options.rb +40 -0
  61. data/proto_docs/google/iam/v1/policy.rb +248 -0
  62. data/proto_docs/google/longrunning/operations.rb +164 -0
  63. data/proto_docs/google/protobuf/any.rb +141 -0
  64. data/proto_docs/google/protobuf/duration.rb +98 -0
  65. data/proto_docs/google/protobuf/empty.rb +36 -0
  66. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  67. data/proto_docs/google/protobuf/timestamp.rb +129 -0
  68. data/proto_docs/google/rpc/status.rb +46 -0
  69. data/proto_docs/google/type/expr.rb +75 -0
  70. metadata +283 -0
@@ -0,0 +1,248 @@
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 Iam
22
+ module V1
23
+ # Defines an Identity and Access Management (IAM) policy. It is used to
24
+ # specify access control policies for Cloud Platform resources.
25
+ #
26
+ #
27
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
28
+ # `members` to a single `role`. Members can be user accounts, service accounts,
29
+ # Google groups, and domains (such as G Suite). A `role` is a named list of
30
+ # permissions (defined by IAM or configured by users). A `binding` can
31
+ # optionally specify a `condition`, which is a logic expression that further
32
+ # constrains the role binding based on attributes about the request and/or
33
+ # target resource.
34
+ #
35
+ # **JSON Example**
36
+ #
37
+ # {
38
+ # "bindings": [
39
+ # {
40
+ # "role": "roles/resourcemanager.organizationAdmin",
41
+ # "members": [
42
+ # "user:mike@example.com",
43
+ # "group:admins@example.com",
44
+ # "domain:google.com",
45
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
46
+ # ]
47
+ # },
48
+ # {
49
+ # "role": "roles/resourcemanager.organizationViewer",
50
+ # "members": ["user:eve@example.com"],
51
+ # "condition": {
52
+ # "title": "expirable access",
53
+ # "description": "Does not grant access after Sep 2020",
54
+ # "expression": "request.time <
55
+ # timestamp('2020-10-01T00:00:00.000Z')",
56
+ # }
57
+ # }
58
+ # ]
59
+ # }
60
+ #
61
+ # **YAML Example**
62
+ #
63
+ # bindings:
64
+ # - members:
65
+ # - user:mike@example.com
66
+ # - group:admins@example.com
67
+ # - domain:google.com
68
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
69
+ # role: roles/resourcemanager.organizationAdmin
70
+ # - members:
71
+ # - user:eve@example.com
72
+ # role: roles/resourcemanager.organizationViewer
73
+ # condition:
74
+ # title: expirable access
75
+ # description: Does not grant access after Sep 2020
76
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
77
+ #
78
+ # For a description of IAM and its features, see the
79
+ # [IAM developer's guide](https://cloud.google.com/iam/docs).
80
+ # @!attribute [rw] version
81
+ # @return [::Integer]
82
+ # Specifies the format of the policy.
83
+ #
84
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
85
+ # rejected.
86
+ #
87
+ # Operations affecting conditional bindings must specify version 3. This can
88
+ # be either setting a conditional policy, modifying a conditional binding,
89
+ # or removing a binding (conditional or unconditional) from the stored
90
+ # conditional policy.
91
+ # Operations on non-conditional policies may specify any valid value or
92
+ # leave the field unset.
93
+ #
94
+ # If no etag is provided in the call to `setIamPolicy`, version compliance
95
+ # checks against the stored policy is skipped.
96
+ # @!attribute [rw] bindings
97
+ # @return [::Array<::Google::Iam::V1::Binding>]
98
+ # Associates a list of `members` to a `role`. Optionally may specify a
99
+ # `condition` that determines when binding is in effect.
100
+ # `bindings` with no members will result in an error.
101
+ # @!attribute [rw] etag
102
+ # @return [::String]
103
+ # `etag` is used for optimistic concurrency control as a way to help
104
+ # prevent simultaneous updates of a policy from overwriting each other.
105
+ # It is strongly suggested that systems make use of the `etag` in the
106
+ # read-modify-write cycle to perform policy updates in order to avoid race
107
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
108
+ # systems are expected to put that etag in the request to `setIamPolicy` to
109
+ # ensure that their change will be applied to the same version of the policy.
110
+ #
111
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
112
+ # policy is overwritten. Due to blind-set semantics of an etag-less policy,
113
+ # 'setIamPolicy' will not fail even if the incoming policy version does not
114
+ # meet the requirements for modifying the stored policy.
115
+ class Policy
116
+ include ::Google::Protobuf::MessageExts
117
+ extend ::Google::Protobuf::MessageExts::ClassMethods
118
+ end
119
+
120
+ # Associates `members` with a `role`.
121
+ # @!attribute [rw] role
122
+ # @return [::String]
123
+ # Role that is assigned to `members`.
124
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
125
+ # @!attribute [rw] members
126
+ # @return [::Array<::String>]
127
+ # Specifies the identities requesting access for a Cloud Platform resource.
128
+ # `members` can have the following values:
129
+ #
130
+ # * `allUsers`: A special identifier that represents anyone who is
131
+ # on the internet; with or without a Google account.
132
+ #
133
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
134
+ # who is authenticated with a Google account or a service account.
135
+ #
136
+ # * `user:{emailid}`: An email address that represents a specific Google
137
+ # account. For example, `alice@example.com` .
138
+ #
139
+ #
140
+ # * `serviceAccount:{emailid}`: An email address that represents a service
141
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
142
+ #
143
+ # * `group:{emailid}`: An email address that represents a Google group.
144
+ # For example, `admins@example.com`.
145
+ #
146
+ #
147
+ # * `domain:{domain}`: The G Suite domain (primary) that represents all the
148
+ # users of that domain. For example, `google.com` or `example.com`.
149
+ # @!attribute [rw] condition
150
+ # @return [::Google::Type::Expr]
151
+ # The condition that is associated with this binding.
152
+ # NOTE: An unsatisfied condition will not allow user access via current
153
+ # binding. Different bindings, including their conditions, are examined
154
+ # independently.
155
+ class Binding
156
+ include ::Google::Protobuf::MessageExts
157
+ extend ::Google::Protobuf::MessageExts::ClassMethods
158
+ end
159
+
160
+ # The difference delta between two policies.
161
+ # @!attribute [rw] binding_deltas
162
+ # @return [::Array<::Google::Iam::V1::BindingDelta>]
163
+ # The delta for Bindings between two policies.
164
+ # @!attribute [rw] audit_config_deltas
165
+ # @return [::Array<::Google::Iam::V1::AuditConfigDelta>]
166
+ # The delta for AuditConfigs between two policies.
167
+ class PolicyDelta
168
+ include ::Google::Protobuf::MessageExts
169
+ extend ::Google::Protobuf::MessageExts::ClassMethods
170
+ end
171
+
172
+ # One delta entry for Binding. Each individual change (only one member in each
173
+ # entry) to a binding will be a separate entry.
174
+ # @!attribute [rw] action
175
+ # @return [::Google::Iam::V1::BindingDelta::Action]
176
+ # The action that was performed on a Binding.
177
+ # Required
178
+ # @!attribute [rw] role
179
+ # @return [::String]
180
+ # Role that is assigned to `members`.
181
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
182
+ # Required
183
+ # @!attribute [rw] member
184
+ # @return [::String]
185
+ # A single identity requesting access for a Cloud Platform resource.
186
+ # Follows the same format of Binding.members.
187
+ # Required
188
+ # @!attribute [rw] condition
189
+ # @return [::Google::Type::Expr]
190
+ # The condition that is associated with this binding.
191
+ class BindingDelta
192
+ include ::Google::Protobuf::MessageExts
193
+ extend ::Google::Protobuf::MessageExts::ClassMethods
194
+
195
+ # The type of action performed on a Binding in a policy.
196
+ module Action
197
+ # Unspecified.
198
+ ACTION_UNSPECIFIED = 0
199
+
200
+ # Addition of a Binding.
201
+ ADD = 1
202
+
203
+ # Removal of a Binding.
204
+ REMOVE = 2
205
+ end
206
+ end
207
+
208
+ # One delta entry for AuditConfig. Each individual change (only one
209
+ # exempted_member in each entry) to a AuditConfig will be a separate entry.
210
+ # @!attribute [rw] action
211
+ # @return [::Google::Iam::V1::AuditConfigDelta::Action]
212
+ # The action that was performed on an audit configuration in a policy.
213
+ # Required
214
+ # @!attribute [rw] service
215
+ # @return [::String]
216
+ # Specifies a service that was configured for Cloud Audit Logging.
217
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
218
+ # `allServices` is a special value that covers all services.
219
+ # Required
220
+ # @!attribute [rw] exempted_member
221
+ # @return [::String]
222
+ # A single identity that is exempted from "data access" audit
223
+ # logging for the `service` specified above.
224
+ # Follows the same format of Binding.members.
225
+ # @!attribute [rw] log_type
226
+ # @return [::String]
227
+ # Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always
228
+ # enabled, and cannot be configured.
229
+ # Required
230
+ class AuditConfigDelta
231
+ include ::Google::Protobuf::MessageExts
232
+ extend ::Google::Protobuf::MessageExts::ClassMethods
233
+
234
+ # The type of action performed on an audit configuration in a policy.
235
+ module Action
236
+ # Unspecified.
237
+ ACTION_UNSPECIFIED = 0
238
+
239
+ # Addition of an audit configuration.
240
+ ADD = 1
241
+
242
+ # Removal of an audit configuration.
243
+ REMOVE = 2
244
+ end
245
+ end
246
+ end
247
+ end
248
+ end
@@ -0,0 +1,164 @@
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 Longrunning
22
+ # This resource represents a long-running operation that is the result of a
23
+ # network API call.
24
+ # @!attribute [rw] name
25
+ # @return [::String]
26
+ # The server-assigned name, which is only unique within the same service that
27
+ # originally returns it. If you use the default HTTP mapping, the
28
+ # `name` should be a resource name ending with `operations/{unique_id}`.
29
+ # @!attribute [rw] metadata
30
+ # @return [::Google::Protobuf::Any]
31
+ # Service-specific metadata associated with the operation. It typically
32
+ # contains progress information and common metadata such as create time.
33
+ # Some services might not provide such metadata. Any method that returns a
34
+ # long-running operation should document the metadata type, if any.
35
+ # @!attribute [rw] done
36
+ # @return [::Boolean]
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
39
+ # available.
40
+ # @!attribute [rw] error
41
+ # @return [::Google::Rpc::Status]
42
+ # The error result of the operation in case of failure or cancellation.
43
+ # @!attribute [rw] response
44
+ # @return [::Google::Protobuf::Any]
45
+ # The normal response of the operation in case of success. If the original
46
+ # method returns no data on success, such as `Delete`, the response is
47
+ # `google.protobuf.Empty`. If the original method is standard
48
+ # `Get`/`Create`/`Update`, the response should be the resource. For other
49
+ # methods, the response should have the type `XxxResponse`, where `Xxx`
50
+ # is the original method name. For example, if the original method name
51
+ # is `TakeSnapshot()`, the inferred response type is
52
+ # `TakeSnapshotResponse`.
53
+ class Operation
54
+ include ::Google::Protobuf::MessageExts
55
+ extend ::Google::Protobuf::MessageExts::ClassMethods
56
+ end
57
+
58
+ # The request message for Operations.GetOperation.
59
+ # @!attribute [rw] name
60
+ # @return [::String]
61
+ # The name of the operation resource.
62
+ class GetOperationRequest
63
+ include ::Google::Protobuf::MessageExts
64
+ extend ::Google::Protobuf::MessageExts::ClassMethods
65
+ end
66
+
67
+ # The request message for Operations.ListOperations.
68
+ # @!attribute [rw] name
69
+ # @return [::String]
70
+ # The name of the operation's parent resource.
71
+ # @!attribute [rw] filter
72
+ # @return [::String]
73
+ # The standard list filter.
74
+ # @!attribute [rw] page_size
75
+ # @return [::Integer]
76
+ # The standard list page size.
77
+ # @!attribute [rw] page_token
78
+ # @return [::String]
79
+ # The standard list page token.
80
+ class ListOperationsRequest
81
+ include ::Google::Protobuf::MessageExts
82
+ extend ::Google::Protobuf::MessageExts::ClassMethods
83
+ end
84
+
85
+ # The response message for Operations.ListOperations.
86
+ # @!attribute [rw] operations
87
+ # @return [::Array<::Google::Longrunning::Operation>]
88
+ # A list of operations that matches the specified filter in the request.
89
+ # @!attribute [rw] next_page_token
90
+ # @return [::String]
91
+ # The standard List next-page token.
92
+ class ListOperationsResponse
93
+ include ::Google::Protobuf::MessageExts
94
+ extend ::Google::Protobuf::MessageExts::ClassMethods
95
+ end
96
+
97
+ # The request message for Operations.CancelOperation.
98
+ # @!attribute [rw] name
99
+ # @return [::String]
100
+ # The name of the operation resource to be cancelled.
101
+ class CancelOperationRequest
102
+ include ::Google::Protobuf::MessageExts
103
+ extend ::Google::Protobuf::MessageExts::ClassMethods
104
+ end
105
+
106
+ # The request message for Operations.DeleteOperation.
107
+ # @!attribute [rw] name
108
+ # @return [::String]
109
+ # The name of the operation resource to be deleted.
110
+ class DeleteOperationRequest
111
+ include ::Google::Protobuf::MessageExts
112
+ extend ::Google::Protobuf::MessageExts::ClassMethods
113
+ end
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
+
129
+ # A message representing the message types used by a long-running operation.
130
+ #
131
+ # Example:
132
+ #
133
+ # rpc LongRunningRecognize(LongRunningRecognizeRequest)
134
+ # returns (google.longrunning.Operation) {
135
+ # option (google.longrunning.operation_info) = {
136
+ # response_type: "LongRunningRecognizeResponse"
137
+ # metadata_type: "LongRunningRecognizeMetadata"
138
+ # };
139
+ # }
140
+ # @!attribute [rw] response_type
141
+ # @return [::String]
142
+ # Required. The message name of the primary return type for this
143
+ # long-running operation.
144
+ # This type will be used to deserialize the LRO's response.
145
+ #
146
+ # If the response is in a different package from the rpc, a fully-qualified
147
+ # message name must be used (e.g. `google.protobuf.Struct`).
148
+ #
149
+ # Note: Altering this value constitutes a breaking change.
150
+ # @!attribute [rw] metadata_type
151
+ # @return [::String]
152
+ # Required. The message name of the metadata type for this long-running
153
+ # operation.
154
+ #
155
+ # If the response is in a different package from the rpc, a fully-qualified
156
+ # message name must be used (e.g. `google.protobuf.Struct`).
157
+ #
158
+ # Note: Altering this value constitutes a breaking change.
159
+ class OperationInfo
160
+ include ::Google::Protobuf::MessageExts
161
+ extend ::Google::Protobuf::MessageExts::ClassMethods
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,141 @@
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
+ # `Any` contains an arbitrary serialized protocol buffer message along with a
23
+ # URL that describes the type of the serialized message.
24
+ #
25
+ # Protobuf library provides support to pack/unpack Any values in the form
26
+ # of utility functions or additional generated methods of the Any type.
27
+ #
28
+ # Example 1: Pack and unpack a message in C++.
29
+ #
30
+ # Foo foo = ...;
31
+ # Any any;
32
+ # any.PackFrom(foo);
33
+ # ...
34
+ # if (any.UnpackTo(&foo)) {
35
+ # ...
36
+ # }
37
+ #
38
+ # Example 2: Pack and unpack a message in Java.
39
+ #
40
+ # Foo foo = ...;
41
+ # Any any = Any.pack(foo);
42
+ # ...
43
+ # if (any.is(Foo.class)) {
44
+ # foo = any.unpack(Foo.class);
45
+ # }
46
+ #
47
+ # Example 3: Pack and unpack a message in Python.
48
+ #
49
+ # foo = Foo(...)
50
+ # any = Any()
51
+ # any.Pack(foo)
52
+ # ...
53
+ # if any.Is(Foo.DESCRIPTOR):
54
+ # any.Unpack(foo)
55
+ # ...
56
+ #
57
+ # Example 4: Pack and unpack a message in Go
58
+ #
59
+ # foo := &pb.Foo{...}
60
+ # any, err := anypb.New(foo)
61
+ # if err != nil {
62
+ # ...
63
+ # }
64
+ # ...
65
+ # foo := &pb.Foo{}
66
+ # if err := any.UnmarshalTo(foo); err != nil {
67
+ # ...
68
+ # }
69
+ #
70
+ # The pack methods provided by protobuf library will by default use
71
+ # 'type.googleapis.com/full.type.name' as the type URL and the unpack
72
+ # methods only use the fully qualified type name after the last '/'
73
+ # in the type URL, for example "foo.bar.com/x/y.z" will yield type
74
+ # name "y.z".
75
+ #
76
+ #
77
+ # JSON
78
+ # ====
79
+ # The JSON representation of an `Any` value uses the regular
80
+ # representation of the deserialized, embedded message, with an
81
+ # additional field `@type` which contains the type URL. Example:
82
+ #
83
+ # package google.profile;
84
+ # message Person {
85
+ # string first_name = 1;
86
+ # string last_name = 2;
87
+ # }
88
+ #
89
+ # {
90
+ # "@type": "type.googleapis.com/google.profile.Person",
91
+ # "firstName": <string>,
92
+ # "lastName": <string>
93
+ # }
94
+ #
95
+ # If the embedded message type is well-known and has a custom JSON
96
+ # representation, that representation will be embedded adding a field
97
+ # `value` which holds the custom JSON in addition to the `@type`
98
+ # field. Example (for message [google.protobuf.Duration][]):
99
+ #
100
+ # {
101
+ # "@type": "type.googleapis.com/google.protobuf.Duration",
102
+ # "value": "1.212s"
103
+ # }
104
+ # @!attribute [rw] type_url
105
+ # @return [::String]
106
+ # A URL/resource name that uniquely identifies the type of the serialized
107
+ # protocol buffer message. This string must contain at least
108
+ # one "/" character. The last segment of the URL's path must represent
109
+ # the fully qualified name of the type (as in
110
+ # `path/google.protobuf.Duration`). The name should be in a canonical form
111
+ # (e.g., leading "." is not accepted).
112
+ #
113
+ # In practice, teams usually precompile into the binary all types that they
114
+ # expect it to use in the context of Any. However, for URLs which use the
115
+ # scheme `http`, `https`, or no scheme, one can optionally set up a type
116
+ # server that maps type URLs to message definitions as follows:
117
+ #
118
+ # * If no scheme is provided, `https` is assumed.
119
+ # * An HTTP GET on the URL must yield a [google.protobuf.Type][]
120
+ # value in binary format, or produce an error.
121
+ # * Applications are allowed to cache lookup results based on the
122
+ # URL, or have them precompiled into a binary to avoid any
123
+ # lookup. Therefore, binary compatibility needs to be preserved
124
+ # on changes to types. (Use versioned type names to manage
125
+ # breaking changes.)
126
+ #
127
+ # Note: this functionality is not currently available in the official
128
+ # protobuf release, and it is not used for type URLs beginning with
129
+ # type.googleapis.com.
130
+ #
131
+ # Schemes other than `http`, `https` (or the empty scheme) might be
132
+ # used with implementation specific semantics.
133
+ # @!attribute [rw] value
134
+ # @return [::String]
135
+ # Must be a valid serialized protocol buffer of the above specified type.
136
+ class Any
137
+ include ::Google::Protobuf::MessageExts
138
+ extend ::Google::Protobuf::MessageExts::ClassMethods
139
+ end
140
+ end
141
+ end