grpc-google-iam-v1 1.2.0 → 1.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: 6c9f0026845f652027d464b297d7b4c2d71d55f6a07ec497678b44ff3cb94d2e
4
- data.tar.gz: 927caa301f41ebd95354aeb370d76167e913dfedd60c59e1ddbd1ce7b855cbd5
3
+ metadata.gz: 87ad1a78620e139620a16f087d33f200eb0437e35c181952e11eb2117b757820
4
+ data.tar.gz: 8ef90db72bea9e35d8227cfc06f6c13b4ce5d5df0e81964345c4e0ec14ed4dae
5
5
  SHA512:
6
- metadata.gz: deb1ef1be3472791144d2fddebdd97c45fbce35eba36c7d104f820c873eda556d09dd94f85f80da79439b85fbc4750162277e2aba904b45bd473bc79e98ab030
7
- data.tar.gz: 2a1f9d80441a57fb78926ded8b5b9bf72b9423fb8834a4f952c17314c226de0fa3dd0b35a35a23801759d7f30359ec2096056470d865688382400419015228cb
6
+ metadata.gz: b504ebbd5c0a0c0026c98565884ca9f1312b99584a3cd2345a8d2ee2a3f8ddf42eab370b3c61ed25817749e719963c284355f14503916a687f3421c31c7f572e
7
+ data.tar.gz: 0de9dbea6ecc0cda65de5bd1d3b3eb848e73fabe539187e493488398d0435fd8db46a2ec30dcc6902d7fd77fea29934240312ad2ca8fb194072b5ed756755464
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Release History
2
2
 
3
+ ### 1.3.0 (2023-08-07)
4
+
5
+ #### Features
6
+
7
+ * Updated generated protobuf output to use binary descriptors for better future compatibility ([#172](https://github.com/googleapis/common-protos-ruby/issues/172))
8
+
3
9
  ### 1.2.0 (2022-08-17)
4
10
 
5
11
  #### Features
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/iam/v1/iam_policy.proto
3
4
 
@@ -11,25 +12,34 @@ require 'google/iam/v1/options_pb'
11
12
  require 'google/iam/v1/policy_pb'
12
13
  require 'google/protobuf/field_mask_pb'
13
14
 
14
- Google::Protobuf::DescriptorPool.generated_pool.build do
15
- add_file("google/iam/v1/iam_policy.proto", :syntax => :proto3) do
16
- add_message "google.iam.v1.SetIamPolicyRequest" do
17
- optional :resource, :string, 1
18
- optional :policy, :message, 2, "google.iam.v1.Policy"
19
- optional :update_mask, :message, 3, "google.protobuf.FieldMask"
20
- end
21
- add_message "google.iam.v1.GetIamPolicyRequest" do
22
- optional :resource, :string, 1
23
- optional :options, :message, 2, "google.iam.v1.GetPolicyOptions"
24
- end
25
- add_message "google.iam.v1.TestIamPermissionsRequest" do
26
- optional :resource, :string, 1
27
- repeated :permissions, :string, 2
28
- end
29
- add_message "google.iam.v1.TestIamPermissionsResponse" do
30
- repeated :permissions, :string, 1
15
+
16
+ descriptor_data = "\n\x1egoogle/iam/v1/iam_policy.proto\x12\rgoogle.iam.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/iam/v1/options.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a google/protobuf/field_mask.proto\"\x8f\x01\n\x13SetIamPolicyRequest\x12\x1b\n\x08resource\x18\x01 \x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12*\n\x06policy\x18\x02 \x01(\x0b\x32\x15.google.iam.v1.PolicyB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"d\n\x13GetIamPolicyRequest\x12\x1b\n\x08resource\x18\x01 \x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12\x30\n\x07options\x18\x02 \x01(\x0b\x32\x1f.google.iam.v1.GetPolicyOptions\"R\n\x19TestIamPermissionsRequest\x12\x1b\n\x08resource\x18\x01 \x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12\x18\n\x0bpermissions\x18\x02 \x03(\tB\x03\xe0\x41\x02\"1\n\x1aTestIamPermissionsResponse\x12\x13\n\x0bpermissions\x18\x01 \x03(\t2\xb4\x03\n\tIAMPolicy\x12t\n\x0cSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\")\x82\xd3\xe4\x93\x02#\"\x1e/v1/{resource=**}:setIamPolicy:\x01*\x12t\n\x0cGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\")\x82\xd3\xe4\x93\x02#\"\x1e/v1/{resource=**}:getIamPolicy:\x01*\x12\x9a\x01\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse\"/\x82\xd3\xe4\x93\x02)\"$/v1/{resource=**}:testIamPermissions:\x01*\x1a\x1e\xca\x41\x1biam-meta-api.googleapis.comB\x7f\n\x11\x63om.google.iam.v1B\x0eIamPolicyProtoP\x01Z)cloud.google.com/go/iam/apiv1/iampb;iampb\xf8\x01\x01\xaa\x02\x13Google.Cloud.Iam.V1\xca\x02\x13Google\\Cloud\\Iam\\V1b\x06proto3"
17
+
18
+ pool = Google::Protobuf::DescriptorPool.generated_pool
19
+
20
+ begin
21
+ pool.add_serialized_file(descriptor_data)
22
+ rescue TypeError => e
23
+ # Compatibility code: will be removed in the next major version.
24
+ require 'google/protobuf/descriptor_pb'
25
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
26
+ parsed.clear_dependency
27
+ serialized = parsed.class.encode(parsed)
28
+ file = pool.add_serialized_file(serialized)
29
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
30
+ imports = [
31
+ ["google.iam.v1.Policy", "google/iam/v1/policy.proto"],
32
+ ["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"],
33
+ ["google.iam.v1.GetPolicyOptions", "google/iam/v1/options.proto"],
34
+ ]
35
+ imports.each do |type_name, expected_filename|
36
+ import_file = pool.lookup(type_name).file_descriptor
37
+ if import_file.name != expected_filename
38
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
31
39
  end
32
40
  end
41
+ warn "Each proto file must use a consistent fully-qualified name."
42
+ warn "This will become an error in the next major version."
33
43
  end
34
44
 
35
45
  module Google
@@ -42,3 +52,161 @@ module Google
42
52
  end
43
53
  end
44
54
  end
55
+
56
+ #### Source proto file: google/iam/v1/iam_policy.proto ####
57
+ #
58
+ # // Copyright 2022 Google LLC
59
+ # //
60
+ # // Licensed under the Apache License, Version 2.0 (the "License");
61
+ # // you may not use this file except in compliance with the License.
62
+ # // You may obtain a copy of the License at
63
+ # //
64
+ # // http://www.apache.org/licenses/LICENSE-2.0
65
+ # //
66
+ # // Unless required by applicable law or agreed to in writing, software
67
+ # // distributed under the License is distributed on an "AS IS" BASIS,
68
+ # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
69
+ # // See the License for the specific language governing permissions and
70
+ # // limitations under the License.
71
+ #
72
+ # syntax = "proto3";
73
+ #
74
+ # package google.iam.v1;
75
+ #
76
+ # import "google/api/annotations.proto";
77
+ # import "google/api/client.proto";
78
+ # import "google/api/field_behavior.proto";
79
+ # import "google/api/resource.proto";
80
+ # import "google/iam/v1/options.proto";
81
+ # import "google/iam/v1/policy.proto";
82
+ # import "google/protobuf/field_mask.proto";
83
+ #
84
+ # option cc_enable_arenas = true;
85
+ # option csharp_namespace = "Google.Cloud.Iam.V1";
86
+ # option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb";
87
+ # option java_multiple_files = true;
88
+ # option java_outer_classname = "IamPolicyProto";
89
+ # option java_package = "com.google.iam.v1";
90
+ # option php_namespace = "Google\\Cloud\\Iam\\V1";
91
+ #
92
+ # // API Overview
93
+ # //
94
+ # //
95
+ # // Manages Identity and Access Management (IAM) policies.
96
+ # //
97
+ # // Any implementation of an API that offers access control features
98
+ # // implements the google.iam.v1.IAMPolicy interface.
99
+ # //
100
+ # // ## Data model
101
+ # //
102
+ # // Access control is applied when a principal (user or service account), takes
103
+ # // some action on a resource exposed by a service. Resources, identified by
104
+ # // URI-like names, are the unit of access control specification. Service
105
+ # // implementations can choose the granularity of access control and the
106
+ # // supported permissions for their resources.
107
+ # // For example one database service may allow access control to be
108
+ # // specified only at the Table level, whereas another might allow access control
109
+ # // to also be specified at the Column level.
110
+ # //
111
+ # // ## Policy Structure
112
+ # //
113
+ # // See google.iam.v1.Policy
114
+ # //
115
+ # // This is intentionally not a CRUD style API because access control policies
116
+ # // are created and deleted implicitly with the resources to which they are
117
+ # // attached.
118
+ # service IAMPolicy {
119
+ # option (google.api.default_host) = "iam-meta-api.googleapis.com";
120
+ #
121
+ # // Sets the access control policy on the specified resource. Replaces any
122
+ # // existing policy.
123
+ # //
124
+ # // Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
125
+ # rpc SetIamPolicy(SetIamPolicyRequest) returns (Policy) {
126
+ # option (google.api.http) = {
127
+ # post: "/v1/{resource=**}:setIamPolicy"
128
+ # body: "*"
129
+ # };
130
+ # }
131
+ #
132
+ # // Gets the access control policy for a resource.
133
+ # // Returns an empty policy if the resource exists and does not have a policy
134
+ # // set.
135
+ # rpc GetIamPolicy(GetIamPolicyRequest) returns (Policy) {
136
+ # option (google.api.http) = {
137
+ # post: "/v1/{resource=**}:getIamPolicy"
138
+ # body: "*"
139
+ # };
140
+ # }
141
+ #
142
+ # // Returns permissions that a caller has on the specified resource.
143
+ # // If the resource does not exist, this will return an empty set of
144
+ # // permissions, not a `NOT_FOUND` error.
145
+ # //
146
+ # // Note: This operation is designed to be used for building permission-aware
147
+ # // UIs and command-line tools, not for authorization checking. This operation
148
+ # // may "fail open" without warning.
149
+ # rpc TestIamPermissions(TestIamPermissionsRequest) returns (TestIamPermissionsResponse) {
150
+ # option (google.api.http) = {
151
+ # post: "/v1/{resource=**}:testIamPermissions"
152
+ # body: "*"
153
+ # };
154
+ # }
155
+ # }
156
+ #
157
+ # // Request message for `SetIamPolicy` method.
158
+ # message SetIamPolicyRequest {
159
+ # // REQUIRED: The resource for which the policy is being specified.
160
+ # // See the operation documentation for the appropriate value for this field.
161
+ # string resource = 1 [
162
+ # (google.api.field_behavior) = REQUIRED,
163
+ # (google.api.resource_reference).type = "*"];
164
+ #
165
+ # // REQUIRED: The complete policy to be applied to the `resource`. The size of
166
+ # // the policy is limited to a few 10s of KB. An empty policy is a
167
+ # // valid policy but certain Cloud Platform services (such as Projects)
168
+ # // might reject them.
169
+ # Policy policy = 2 [(google.api.field_behavior) = REQUIRED];
170
+ #
171
+ # // OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
172
+ # // the fields in the mask will be modified. If no mask is provided, the
173
+ # // following default mask is used:
174
+ # //
175
+ # // `paths: "bindings, etag"`
176
+ # google.protobuf.FieldMask update_mask = 3;
177
+ # }
178
+ #
179
+ # // Request message for `GetIamPolicy` method.
180
+ # message GetIamPolicyRequest {
181
+ # // REQUIRED: The resource for which the policy is being requested.
182
+ # // See the operation documentation for the appropriate value for this field.
183
+ # string resource = 1 [
184
+ # (google.api.field_behavior) = REQUIRED,
185
+ # (google.api.resource_reference).type = "*"];
186
+ #
187
+ # // OPTIONAL: A `GetPolicyOptions` object for specifying options to
188
+ # // `GetIamPolicy`.
189
+ # GetPolicyOptions options = 2;
190
+ # }
191
+ #
192
+ # // Request message for `TestIamPermissions` method.
193
+ # message TestIamPermissionsRequest {
194
+ # // REQUIRED: The resource for which the policy detail is being requested.
195
+ # // See the operation documentation for the appropriate value for this field.
196
+ # string resource = 1[
197
+ # (google.api.field_behavior) = REQUIRED,
198
+ # (google.api.resource_reference).type = "*"];
199
+ #
200
+ # // The set of permissions to check for the `resource`. Permissions with
201
+ # // wildcards (such as '*' or 'storage.*') are not allowed. For more
202
+ # // information see
203
+ # // [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
204
+ # repeated string permissions = 2 [(google.api.field_behavior) = REQUIRED];
205
+ # }
206
+ #
207
+ # // Response message for `TestIamPermissions` method.
208
+ # message TestIamPermissionsResponse {
209
+ # // A subset of `TestPermissionsRequest.permissions` that the caller is
210
+ # // allowed.
211
+ # repeated string permissions = 1;
212
+ # }
@@ -1,14 +1,34 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/iam/v1/options.proto
3
4
 
4
5
  require 'google/protobuf'
5
6
 
6
- Google::Protobuf::DescriptorPool.generated_pool.build do
7
- add_file("google/iam/v1/options.proto", :syntax => :proto3) do
8
- add_message "google.iam.v1.GetPolicyOptions" do
9
- optional :requested_policy_version, :int32, 1
7
+
8
+ descriptor_data = "\n\x1bgoogle/iam/v1/options.proto\x12\rgoogle.iam.v1\"4\n\x10GetPolicyOptions\x12 \n\x18requested_policy_version\x18\x01 \x01(\x05\x42}\n\x11\x63om.google.iam.v1B\x0cOptionsProtoP\x01Z)cloud.google.com/go/iam/apiv1/iampb;iampb\xf8\x01\x01\xaa\x02\x13Google.Cloud.Iam.V1\xca\x02\x13Google\\Cloud\\Iam\\V1b\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError => e
15
+ # Compatibility code: will be removed in the next major version.
16
+ require 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = [
23
+ ]
24
+ imports.each do |type_name, expected_filename|
25
+ import_file = pool.lookup(type_name).file_descriptor
26
+ if import_file.name != expected_filename
27
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
10
28
  end
11
29
  end
30
+ warn "Each proto file must use a consistent fully-qualified name."
31
+ warn "This will become an error in the next major version."
12
32
  end
13
33
 
14
34
  module Google
@@ -18,3 +38,54 @@ module Google
18
38
  end
19
39
  end
20
40
  end
41
+
42
+ #### Source proto file: google/iam/v1/options.proto ####
43
+ #
44
+ # // Copyright 2022 Google LLC
45
+ # //
46
+ # // Licensed under the Apache License, Version 2.0 (the "License");
47
+ # // you may not use this file except in compliance with the License.
48
+ # // You may obtain a copy of the License at
49
+ # //
50
+ # // http://www.apache.org/licenses/LICENSE-2.0
51
+ # //
52
+ # // Unless required by applicable law or agreed to in writing, software
53
+ # // distributed under the License is distributed on an "AS IS" BASIS,
54
+ # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
55
+ # // See the License for the specific language governing permissions and
56
+ # // limitations under the License.
57
+ #
58
+ # syntax = "proto3";
59
+ #
60
+ # package google.iam.v1;
61
+ #
62
+ # option cc_enable_arenas = true;
63
+ # option csharp_namespace = "Google.Cloud.Iam.V1";
64
+ # option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb";
65
+ # option java_multiple_files = true;
66
+ # option java_outer_classname = "OptionsProto";
67
+ # option java_package = "com.google.iam.v1";
68
+ # option php_namespace = "Google\\Cloud\\Iam\\V1";
69
+ #
70
+ # // Encapsulates settings provided to GetIamPolicy.
71
+ # message GetPolicyOptions {
72
+ # // Optional. The maximum policy version that will be used to format the
73
+ # // policy.
74
+ # //
75
+ # // Valid values are 0, 1, and 3. Requests specifying an invalid value will be
76
+ # // rejected.
77
+ # //
78
+ # // Requests for policies with any conditional role bindings must specify
79
+ # // version 3. Policies with no conditional role bindings may specify any valid
80
+ # // value or leave the field unset.
81
+ # //
82
+ # // The policy in the response might use the policy version that you specified,
83
+ # // or it might use a lower policy version. For example, if you specify version
84
+ # // 3, but the policy has no conditional role bindings, the response uses
85
+ # // version 1.
86
+ # //
87
+ # // To learn which resources support conditions in their IAM policies, see the
88
+ # // [IAM
89
+ # // documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
90
+ # int32 requested_policy_version = 1;
91
+ # }
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/iam/v1/policy.proto
3
4
 
@@ -5,60 +6,32 @@ require 'google/protobuf'
5
6
 
6
7
  require 'google/type/expr_pb'
7
8
 
8
- Google::Protobuf::DescriptorPool.generated_pool.build do
9
- add_file("google/iam/v1/policy.proto", :syntax => :proto3) do
10
- add_message "google.iam.v1.Policy" do
11
- optional :version, :int32, 1
12
- repeated :bindings, :message, 4, "google.iam.v1.Binding"
13
- repeated :audit_configs, :message, 6, "google.iam.v1.AuditConfig"
14
- optional :etag, :bytes, 3
15
- end
16
- add_message "google.iam.v1.Binding" do
17
- optional :role, :string, 1
18
- repeated :members, :string, 2
19
- optional :condition, :message, 3, "google.type.Expr"
20
- end
21
- add_message "google.iam.v1.AuditConfig" do
22
- optional :service, :string, 1
23
- repeated :audit_log_configs, :message, 3, "google.iam.v1.AuditLogConfig"
24
- end
25
- add_message "google.iam.v1.AuditLogConfig" do
26
- optional :log_type, :enum, 1, "google.iam.v1.AuditLogConfig.LogType"
27
- repeated :exempted_members, :string, 2
28
- end
29
- add_enum "google.iam.v1.AuditLogConfig.LogType" do
30
- value :LOG_TYPE_UNSPECIFIED, 0
31
- value :ADMIN_READ, 1
32
- value :DATA_WRITE, 2
33
- value :DATA_READ, 3
34
- end
35
- add_message "google.iam.v1.PolicyDelta" do
36
- repeated :binding_deltas, :message, 1, "google.iam.v1.BindingDelta"
37
- repeated :audit_config_deltas, :message, 2, "google.iam.v1.AuditConfigDelta"
38
- end
39
- add_message "google.iam.v1.BindingDelta" do
40
- optional :action, :enum, 1, "google.iam.v1.BindingDelta.Action"
41
- optional :role, :string, 2
42
- optional :member, :string, 3
43
- optional :condition, :message, 4, "google.type.Expr"
44
- end
45
- add_enum "google.iam.v1.BindingDelta.Action" do
46
- value :ACTION_UNSPECIFIED, 0
47
- value :ADD, 1
48
- value :REMOVE, 2
49
- end
50
- add_message "google.iam.v1.AuditConfigDelta" do
51
- optional :action, :enum, 1, "google.iam.v1.AuditConfigDelta.Action"
52
- optional :service, :string, 2
53
- optional :exempted_member, :string, 3
54
- optional :log_type, :string, 4
55
- end
56
- add_enum "google.iam.v1.AuditConfigDelta.Action" do
57
- value :ACTION_UNSPECIFIED, 0
58
- value :ADD, 1
59
- value :REMOVE, 2
9
+
10
+ descriptor_data = "\n\x1agoogle/iam/v1/policy.proto\x12\rgoogle.iam.v1\x1a\x16google/type/expr.proto\"\x84\x01\n\x06Policy\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12(\n\x08\x62indings\x18\x04 \x03(\x0b\x32\x16.google.iam.v1.Binding\x12\x31\n\raudit_configs\x18\x06 \x03(\x0b\x32\x1a.google.iam.v1.AuditConfig\x12\x0c\n\x04\x65tag\x18\x03 \x01(\x0c\"N\n\x07\x42inding\x12\x0c\n\x04role\x18\x01 \x01(\t\x12\x0f\n\x07members\x18\x02 \x03(\t\x12$\n\tcondition\x18\x03 \x01(\x0b\x32\x11.google.type.Expr\"X\n\x0b\x41uditConfig\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x38\n\x11\x61udit_log_configs\x18\x03 \x03(\x0b\x32\x1d.google.iam.v1.AuditLogConfig\"\xb7\x01\n\x0e\x41uditLogConfig\x12\x37\n\x08log_type\x18\x01 \x01(\x0e\x32%.google.iam.v1.AuditLogConfig.LogType\x12\x18\n\x10\x65xempted_members\x18\x02 \x03(\t\"R\n\x07LogType\x12\x18\n\x14LOG_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nADMIN_READ\x10\x01\x12\x0e\n\nDATA_WRITE\x10\x02\x12\r\n\tDATA_READ\x10\x03\"\x80\x01\n\x0bPolicyDelta\x12\x33\n\x0e\x62inding_deltas\x18\x01 \x03(\x0b\x32\x1b.google.iam.v1.BindingDelta\x12<\n\x13\x61udit_config_deltas\x18\x02 \x03(\x0b\x32\x1f.google.iam.v1.AuditConfigDelta\"\xbd\x01\n\x0c\x42indingDelta\x12\x32\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\".google.iam.v1.BindingDelta.Action\x12\x0c\n\x04role\x18\x02 \x01(\t\x12\x0e\n\x06member\x18\x03 \x01(\t\x12$\n\tcondition\x18\x04 \x01(\x0b\x32\x11.google.type.Expr\"5\n\x06\x41\x63tion\x12\x16\n\x12\x41\x43TION_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41\x44\x44\x10\x01\x12\n\n\x06REMOVE\x10\x02\"\xbd\x01\n\x10\x41uditConfigDelta\x12\x36\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32&.google.iam.v1.AuditConfigDelta.Action\x12\x0f\n\x07service\x18\x02 \x01(\t\x12\x17\n\x0f\x65xempted_member\x18\x03 \x01(\t\x12\x10\n\x08log_type\x18\x04 \x01(\t\"5\n\x06\x41\x63tion\x12\x16\n\x12\x41\x43TION_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41\x44\x44\x10\x01\x12\n\n\x06REMOVE\x10\x02\x42|\n\x11\x63om.google.iam.v1B\x0bPolicyProtoP\x01Z)cloud.google.com/go/iam/apiv1/iampb;iampb\xf8\x01\x01\xaa\x02\x13Google.Cloud.Iam.V1\xca\x02\x13Google\\Cloud\\Iam\\V1b\x06proto3"
11
+
12
+ pool = Google::Protobuf::DescriptorPool.generated_pool
13
+
14
+ begin
15
+ pool.add_serialized_file(descriptor_data)
16
+ rescue TypeError => e
17
+ # Compatibility code: will be removed in the next major version.
18
+ require 'google/protobuf/descriptor_pb'
19
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
20
+ parsed.clear_dependency
21
+ serialized = parsed.class.encode(parsed)
22
+ file = pool.add_serialized_file(serialized)
23
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
24
+ imports = [
25
+ ["google.type.Expr", "google/type/expr.proto"],
26
+ ]
27
+ imports.each do |type_name, expected_filename|
28
+ import_file = pool.lookup(type_name).file_descriptor
29
+ if import_file.name != expected_filename
30
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
60
31
  end
61
32
  end
33
+ warn "Each proto file must use a consistent fully-qualified name."
34
+ warn "This will become an error in the next major version."
62
35
  end
63
36
 
64
37
  module Google
@@ -77,3 +50,416 @@ module Google
77
50
  end
78
51
  end
79
52
  end
53
+
54
+ #### Source proto file: google/iam/v1/policy.proto ####
55
+ #
56
+ # // Copyright 2023 Google LLC
57
+ # //
58
+ # // Licensed under the Apache License, Version 2.0 (the "License");
59
+ # // you may not use this file except in compliance with the License.
60
+ # // You may obtain a copy of the License at
61
+ # //
62
+ # // http://www.apache.org/licenses/LICENSE-2.0
63
+ # //
64
+ # // Unless required by applicable law or agreed to in writing, software
65
+ # // distributed under the License is distributed on an "AS IS" BASIS,
66
+ # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
67
+ # // See the License for the specific language governing permissions and
68
+ # // limitations under the License.
69
+ #
70
+ # syntax = "proto3";
71
+ #
72
+ # package google.iam.v1;
73
+ #
74
+ # import "google/type/expr.proto";
75
+ #
76
+ # option cc_enable_arenas = true;
77
+ # option csharp_namespace = "Google.Cloud.Iam.V1";
78
+ # option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb";
79
+ # option java_multiple_files = true;
80
+ # option java_outer_classname = "PolicyProto";
81
+ # option java_package = "com.google.iam.v1";
82
+ # option php_namespace = "Google\\Cloud\\Iam\\V1";
83
+ #
84
+ # // An Identity and Access Management (IAM) policy, which specifies access
85
+ # // controls for Google Cloud resources.
86
+ # //
87
+ # //
88
+ # // A `Policy` is a collection of `bindings`. A `binding` binds one or more
89
+ # // `members`, or principals, to a single `role`. Principals can be user
90
+ # // accounts, service accounts, Google groups, and domains (such as G Suite). A
91
+ # // `role` is a named list of permissions; each `role` can be an IAM predefined
92
+ # // role or a user-created custom role.
93
+ # //
94
+ # // For some types of Google Cloud resources, a `binding` can also specify a
95
+ # // `condition`, which is a logical expression that allows access to a resource
96
+ # // only if the expression evaluates to `true`. A condition can add constraints
97
+ # // based on attributes of the request, the resource, or both. To learn which
98
+ # // resources support conditions in their IAM policies, see the
99
+ # // [IAM
100
+ # // documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
101
+ # //
102
+ # // **JSON example:**
103
+ # //
104
+ # // ```
105
+ # // {
106
+ # // "bindings": [
107
+ # // {
108
+ # // "role": "roles/resourcemanager.organizationAdmin",
109
+ # // "members": [
110
+ # // "user:mike@example.com",
111
+ # // "group:admins@example.com",
112
+ # // "domain:google.com",
113
+ # // "serviceAccount:my-project-id@appspot.gserviceaccount.com"
114
+ # // ]
115
+ # // },
116
+ # // {
117
+ # // "role": "roles/resourcemanager.organizationViewer",
118
+ # // "members": [
119
+ # // "user:eve@example.com"
120
+ # // ],
121
+ # // "condition": {
122
+ # // "title": "expirable access",
123
+ # // "description": "Does not grant access after Sep 2020",
124
+ # // "expression": "request.time <
125
+ # // timestamp('2020-10-01T00:00:00.000Z')",
126
+ # // }
127
+ # // }
128
+ # // ],
129
+ # // "etag": "BwWWja0YfJA=",
130
+ # // "version": 3
131
+ # // }
132
+ # // ```
133
+ # //
134
+ # // **YAML example:**
135
+ # //
136
+ # // ```
137
+ # // bindings:
138
+ # // - members:
139
+ # // - user:mike@example.com
140
+ # // - group:admins@example.com
141
+ # // - domain:google.com
142
+ # // - serviceAccount:my-project-id@appspot.gserviceaccount.com
143
+ # // role: roles/resourcemanager.organizationAdmin
144
+ # // - members:
145
+ # // - user:eve@example.com
146
+ # // role: roles/resourcemanager.organizationViewer
147
+ # // condition:
148
+ # // title: expirable access
149
+ # // description: Does not grant access after Sep 2020
150
+ # // expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
151
+ # // etag: BwWWja0YfJA=
152
+ # // version: 3
153
+ # // ```
154
+ # //
155
+ # // For a description of IAM and its features, see the
156
+ # // [IAM documentation](https://cloud.google.com/iam/docs/).
157
+ # message Policy {
158
+ # // Specifies the format of the policy.
159
+ # //
160
+ # // Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
161
+ # // are rejected.
162
+ # //
163
+ # // Any operation that affects conditional role bindings must specify version
164
+ # // `3`. This requirement applies to the following operations:
165
+ # //
166
+ # // * Getting a policy that includes a conditional role binding
167
+ # // * Adding a conditional role binding to a policy
168
+ # // * Changing a conditional role binding in a policy
169
+ # // * Removing any role binding, with or without a condition, from a policy
170
+ # // that includes conditions
171
+ # //
172
+ # // **Important:** If you use IAM Conditions, you must include the `etag` field
173
+ # // whenever you call `setIamPolicy`. If you omit this field, then IAM allows
174
+ # // you to overwrite a version `3` policy with a version `1` policy, and all of
175
+ # // the conditions in the version `3` policy are lost.
176
+ # //
177
+ # // If a policy does not include any conditions, operations on that policy may
178
+ # // specify any valid version or leave the field unset.
179
+ # //
180
+ # // To learn which resources support conditions in their IAM policies, see the
181
+ # // [IAM
182
+ # // documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
183
+ # int32 version = 1;
184
+ #
185
+ # // Associates a list of `members`, or principals, with a `role`. Optionally,
186
+ # // may specify a `condition` that determines how and when the `bindings` are
187
+ # // applied. Each of the `bindings` must contain at least one principal.
188
+ # //
189
+ # // The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250
190
+ # // of these principals can be Google groups. Each occurrence of a principal
191
+ # // counts towards these limits. For example, if the `bindings` grant 50
192
+ # // different roles to `user:alice@example.com`, and not to any other
193
+ # // principal, then you can add another 1,450 principals to the `bindings` in
194
+ # // the `Policy`.
195
+ # repeated Binding bindings = 4;
196
+ #
197
+ # // Specifies cloud audit logging configuration for this policy.
198
+ # repeated AuditConfig audit_configs = 6;
199
+ #
200
+ # // `etag` is used for optimistic concurrency control as a way to help
201
+ # // prevent simultaneous updates of a policy from overwriting each other.
202
+ # // It is strongly suggested that systems make use of the `etag` in the
203
+ # // read-modify-write cycle to perform policy updates in order to avoid race
204
+ # // conditions: An `etag` is returned in the response to `getIamPolicy`, and
205
+ # // systems are expected to put that etag in the request to `setIamPolicy` to
206
+ # // ensure that their change will be applied to the same version of the policy.
207
+ # //
208
+ # // **Important:** If you use IAM Conditions, you must include the `etag` field
209
+ # // whenever you call `setIamPolicy`. If you omit this field, then IAM allows
210
+ # // you to overwrite a version `3` policy with a version `1` policy, and all of
211
+ # // the conditions in the version `3` policy are lost.
212
+ # bytes etag = 3;
213
+ # }
214
+ #
215
+ # // Associates `members`, or principals, with a `role`.
216
+ # message Binding {
217
+ # // Role that is assigned to the list of `members`, or principals.
218
+ # // For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
219
+ # string role = 1;
220
+ #
221
+ # // Specifies the principals requesting access for a Google Cloud resource.
222
+ # // `members` can have the following values:
223
+ # //
224
+ # // * `allUsers`: A special identifier that represents anyone who is
225
+ # // on the internet; with or without a Google account.
226
+ # //
227
+ # // * `allAuthenticatedUsers`: A special identifier that represents anyone
228
+ # // who is authenticated with a Google account or a service account.
229
+ # //
230
+ # // * `user:{emailid}`: An email address that represents a specific Google
231
+ # // account. For example, `alice@example.com` .
232
+ # //
233
+ # //
234
+ # // * `serviceAccount:{emailid}`: An email address that represents a service
235
+ # // account. For example, `my-other-app@appspot.gserviceaccount.com`.
236
+ # //
237
+ # // * `group:{emailid}`: An email address that represents a Google group.
238
+ # // For example, `admins@example.com`.
239
+ # //
240
+ # // * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
241
+ # // identifier) representing a user that has been recently deleted. For
242
+ # // example, `alice@example.com?uid=123456789012345678901`. If the user is
243
+ # // recovered, this value reverts to `user:{emailid}` and the recovered user
244
+ # // retains the role in the binding.
245
+ # //
246
+ # // * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
247
+ # // unique identifier) representing a service account that has been recently
248
+ # // deleted. For example,
249
+ # // `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
250
+ # // If the service account is undeleted, this value reverts to
251
+ # // `serviceAccount:{emailid}` and the undeleted service account retains the
252
+ # // role in the binding.
253
+ # //
254
+ # // * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
255
+ # // identifier) representing a Google group that has been recently
256
+ # // deleted. For example, `admins@example.com?uid=123456789012345678901`. If
257
+ # // the group is recovered, this value reverts to `group:{emailid}` and the
258
+ # // recovered group retains the role in the binding.
259
+ # //
260
+ # //
261
+ # // * `domain:{domain}`: The G Suite domain (primary) that represents all the
262
+ # // users of that domain. For example, `google.com` or `example.com`.
263
+ # //
264
+ # //
265
+ # repeated string members = 2;
266
+ #
267
+ # // The condition that is associated with this binding.
268
+ # //
269
+ # // If the condition evaluates to `true`, then this binding applies to the
270
+ # // current request.
271
+ # //
272
+ # // If the condition evaluates to `false`, then this binding does not apply to
273
+ # // the current request. However, a different role binding might grant the same
274
+ # // role to one or more of the principals in this binding.
275
+ # //
276
+ # // To learn which resources support conditions in their IAM policies, see the
277
+ # // [IAM
278
+ # // documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
279
+ # google.type.Expr condition = 3;
280
+ # }
281
+ #
282
+ # // Specifies the audit configuration for a service.
283
+ # // The configuration determines which permission types are logged, and what
284
+ # // identities, if any, are exempted from logging.
285
+ # // An AuditConfig must have one or more AuditLogConfigs.
286
+ # //
287
+ # // If there are AuditConfigs for both `allServices` and a specific service,
288
+ # // the union of the two AuditConfigs is used for that service: the log_types
289
+ # // specified in each AuditConfig are enabled, and the exempted_members in each
290
+ # // AuditLogConfig are exempted.
291
+ # //
292
+ # // Example Policy with multiple AuditConfigs:
293
+ # //
294
+ # // {
295
+ # // "audit_configs": [
296
+ # // {
297
+ # // "service": "allServices",
298
+ # // "audit_log_configs": [
299
+ # // {
300
+ # // "log_type": "DATA_READ",
301
+ # // "exempted_members": [
302
+ # // "user:jose@example.com"
303
+ # // ]
304
+ # // },
305
+ # // {
306
+ # // "log_type": "DATA_WRITE"
307
+ # // },
308
+ # // {
309
+ # // "log_type": "ADMIN_READ"
310
+ # // }
311
+ # // ]
312
+ # // },
313
+ # // {
314
+ # // "service": "sampleservice.googleapis.com",
315
+ # // "audit_log_configs": [
316
+ # // {
317
+ # // "log_type": "DATA_READ"
318
+ # // },
319
+ # // {
320
+ # // "log_type": "DATA_WRITE",
321
+ # // "exempted_members": [
322
+ # // "user:aliya@example.com"
323
+ # // ]
324
+ # // }
325
+ # // ]
326
+ # // }
327
+ # // ]
328
+ # // }
329
+ # //
330
+ # // For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
331
+ # // logging. It also exempts `jose@example.com` from DATA_READ logging, and
332
+ # // `aliya@example.com` from DATA_WRITE logging.
333
+ # message AuditConfig {
334
+ # // Specifies a service that will be enabled for audit logging.
335
+ # // For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
336
+ # // `allServices` is a special value that covers all services.
337
+ # string service = 1;
338
+ #
339
+ # // The configuration for logging of each type of permission.
340
+ # repeated AuditLogConfig audit_log_configs = 3;
341
+ # }
342
+ #
343
+ # // Provides the configuration for logging a type of permissions.
344
+ # // Example:
345
+ # //
346
+ # // {
347
+ # // "audit_log_configs": [
348
+ # // {
349
+ # // "log_type": "DATA_READ",
350
+ # // "exempted_members": [
351
+ # // "user:jose@example.com"
352
+ # // ]
353
+ # // },
354
+ # // {
355
+ # // "log_type": "DATA_WRITE"
356
+ # // }
357
+ # // ]
358
+ # // }
359
+ # //
360
+ # // This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
361
+ # // jose@example.com from DATA_READ logging.
362
+ # message AuditLogConfig {
363
+ # // The list of valid permission types for which logging can be configured.
364
+ # // Admin writes are always logged, and are not configurable.
365
+ # enum LogType {
366
+ # // Default case. Should never be this.
367
+ # LOG_TYPE_UNSPECIFIED = 0;
368
+ #
369
+ # // Admin reads. Example: CloudIAM getIamPolicy
370
+ # ADMIN_READ = 1;
371
+ #
372
+ # // Data writes. Example: CloudSQL Users create
373
+ # DATA_WRITE = 2;
374
+ #
375
+ # // Data reads. Example: CloudSQL Users list
376
+ # DATA_READ = 3;
377
+ # }
378
+ #
379
+ # // The log type that this config enables.
380
+ # LogType log_type = 1;
381
+ #
382
+ # // Specifies the identities that do not cause logging for this type of
383
+ # // permission.
384
+ # // Follows the same format of
385
+ # // [Binding.members][google.iam.v1.Binding.members].
386
+ # repeated string exempted_members = 2;
387
+ # }
388
+ #
389
+ # // The difference delta between two policies.
390
+ # message PolicyDelta {
391
+ # // The delta for Bindings between two policies.
392
+ # repeated BindingDelta binding_deltas = 1;
393
+ #
394
+ # // The delta for AuditConfigs between two policies.
395
+ # repeated AuditConfigDelta audit_config_deltas = 2;
396
+ # }
397
+ #
398
+ # // One delta entry for Binding. Each individual change (only one member in each
399
+ # // entry) to a binding will be a separate entry.
400
+ # message BindingDelta {
401
+ # // The type of action performed on a Binding in a policy.
402
+ # enum Action {
403
+ # // Unspecified.
404
+ # ACTION_UNSPECIFIED = 0;
405
+ #
406
+ # // Addition of a Binding.
407
+ # ADD = 1;
408
+ #
409
+ # // Removal of a Binding.
410
+ # REMOVE = 2;
411
+ # }
412
+ #
413
+ # // The action that was performed on a Binding.
414
+ # // Required
415
+ # Action action = 1;
416
+ #
417
+ # // Role that is assigned to `members`.
418
+ # // For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
419
+ # // Required
420
+ # string role = 2;
421
+ #
422
+ # // A single identity requesting access for a Google Cloud resource.
423
+ # // Follows the same format of Binding.members.
424
+ # // Required
425
+ # string member = 3;
426
+ #
427
+ # // The condition that is associated with this binding.
428
+ # google.type.Expr condition = 4;
429
+ # }
430
+ #
431
+ # // One delta entry for AuditConfig. Each individual change (only one
432
+ # // exempted_member in each entry) to a AuditConfig will be a separate entry.
433
+ # message AuditConfigDelta {
434
+ # // The type of action performed on an audit configuration in a policy.
435
+ # enum Action {
436
+ # // Unspecified.
437
+ # ACTION_UNSPECIFIED = 0;
438
+ #
439
+ # // Addition of an audit configuration.
440
+ # ADD = 1;
441
+ #
442
+ # // Removal of an audit configuration.
443
+ # REMOVE = 2;
444
+ # }
445
+ #
446
+ # // The action that was performed on an audit configuration in a policy.
447
+ # // Required
448
+ # Action action = 1;
449
+ #
450
+ # // Specifies a service that was configured for Cloud Audit Logging.
451
+ # // For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
452
+ # // `allServices` is a special value that covers all services.
453
+ # // Required
454
+ # string service = 2;
455
+ #
456
+ # // A single identity that is exempted from "data access" audit
457
+ # // logging for the `service` specified above.
458
+ # // Follows the same format of Binding.members.
459
+ # string exempted_member = 3;
460
+ #
461
+ # // Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always
462
+ # // enabled, and cannot be configured.
463
+ # // Required
464
+ # string log_type = 4;
465
+ # }
@@ -17,7 +17,7 @@
17
17
  module Google
18
18
  module Iam
19
19
  module V1
20
- VERSION = "1.2.0".freeze
20
+ VERSION = "1.3.0".freeze
21
21
  end
22
22
  end
23
23
  end
metadata CHANGED
@@ -1,63 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc-google-iam-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.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-08-17 00:00:00.000000000 Z
11
+ date: 2023-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: googleapis-common-protos
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 1.3.12
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: '2.0'
19
+ version: '1.4'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 1.3.12
30
- - - "<"
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: '2.0'
26
+ version: '1.4'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: google-protobuf
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '3.14'
33
+ version: '3.18'
40
34
  type: :runtime
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
38
  - - "~>"
45
39
  - !ruby/object:Gem::Version
46
- version: '3.14'
40
+ version: '3.18'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: grpc
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '1.27'
47
+ version: '1.41'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
51
  requirements:
58
52
  - - "~>"
59
53
  - !ruby/object:Gem::Version
60
- version: '1.27'
54
+ version: '1.41'
61
55
  description: Common protos and gRPC services for Google IAM
62
56
  email:
63
57
  - googleapis-packages@google.com
@@ -91,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
85
  - !ruby/object:Gem::Version
92
86
  version: '0'
93
87
  requirements: []
94
- rubygems_version: 3.3.14
88
+ rubygems_version: 3.4.2
95
89
  signing_key:
96
90
  specification_version: 4
97
91
  summary: Common protos and gRPC services for Google IAM