google-iam-v3 0.a → 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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +154 -8
  5. data/lib/google/iam/v3/operation_metadata_pb.rb +44 -0
  6. data/lib/google/iam/v3/policy_binding_resources_pb.rb +50 -0
  7. data/lib/google/iam/v3/policy_bindings/client.rb +1130 -0
  8. data/lib/google/iam/v3/policy_bindings/credentials.rb +45 -0
  9. data/lib/google/iam/v3/policy_bindings/operations.rb +811 -0
  10. data/lib/google/iam/v3/policy_bindings/paths.rb +140 -0
  11. data/lib/google/iam/v3/policy_bindings/rest/client.rb +1062 -0
  12. data/lib/google/iam/v3/policy_bindings/rest/operations.rb +926 -0
  13. data/lib/google/iam/v3/policy_bindings/rest/service_stub.rb +535 -0
  14. data/lib/google/iam/v3/policy_bindings/rest.rb +52 -0
  15. data/lib/google/iam/v3/policy_bindings.rb +55 -0
  16. data/lib/google/iam/v3/policy_bindings_service_pb.rb +59 -0
  17. data/lib/google/iam/v3/policy_bindings_service_services_pb.rb +63 -0
  18. data/lib/google/iam/v3/principal_access_boundary_policies/client.rb +1083 -0
  19. data/lib/google/iam/v3/principal_access_boundary_policies/credentials.rb +45 -0
  20. data/lib/google/iam/v3/principal_access_boundary_policies/operations.rb +811 -0
  21. data/lib/google/iam/v3/principal_access_boundary_policies/paths.rb +67 -0
  22. data/lib/google/iam/v3/principal_access_boundary_policies/rest/client.rb +1015 -0
  23. data/lib/google/iam/v3/principal_access_boundary_policies/rest/operations.rb +926 -0
  24. data/lib/google/iam/v3/principal_access_boundary_policies/rest/service_stub.rb +447 -0
  25. data/lib/google/iam/v3/principal_access_boundary_policies/rest.rb +52 -0
  26. data/lib/google/iam/v3/principal_access_boundary_policies.rb +55 -0
  27. data/lib/google/iam/v3/principal_access_boundary_policies_service_pb.rb +61 -0
  28. data/lib/google/iam/v3/principal_access_boundary_policies_service_services_pb.rb +56 -0
  29. data/lib/google/iam/v3/principal_access_boundary_policy_resources_pb.rb +49 -0
  30. data/lib/google/iam/v3/rest.rb +36 -0
  31. data/lib/google/iam/v3/version.rb +7 -2
  32. data/lib/google/iam/v3.rb +44 -0
  33. data/lib/google-iam-v3.rb +21 -0
  34. data/proto_docs/README.md +4 -0
  35. data/proto_docs/google/api/client.rb +473 -0
  36. data/proto_docs/google/api/field_behavior.rb +85 -0
  37. data/proto_docs/google/api/field_info.rb +88 -0
  38. data/proto_docs/google/api/launch_stage.rb +71 -0
  39. data/proto_docs/google/api/resource.rb +227 -0
  40. data/proto_docs/google/iam/v3/operation_metadata.rb +55 -0
  41. data/proto_docs/google/iam/v3/policy_binding_resources.rb +171 -0
  42. data/proto_docs/google/iam/v3/policy_bindings_service.rb +232 -0
  43. data/proto_docs/google/iam/v3/principal_access_boundary_policies_service.rb +191 -0
  44. data/proto_docs/google/iam/v3/principal_access_boundary_policy_resources.rb +127 -0
  45. data/proto_docs/google/longrunning/operations.rb +173 -0
  46. data/proto_docs/google/protobuf/any.rb +145 -0
  47. data/proto_docs/google/protobuf/duration.rb +98 -0
  48. data/proto_docs/google/protobuf/empty.rb +34 -0
  49. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  50. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  51. data/proto_docs/google/rpc/status.rb +48 -0
  52. data/proto_docs/google/type/expr.rb +75 -0
  53. metadata +107 -10
@@ -0,0 +1,232 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 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 V3
23
+ # Request message for CreatePolicyBinding method.
24
+ # @!attribute [rw] parent
25
+ # @return [::String]
26
+ # Required. The parent resource where this policy binding will be created.
27
+ # The binding parent is the closest Resource Manager resource (project,
28
+ # folder or organization) to the binding target.
29
+ #
30
+ # Format:
31
+ #
32
+ # * `projects/{project_id}/locations/{location}`
33
+ # * `projects/{project_number}/locations/{location}`
34
+ # * `folders/{folder_id}/locations/{location}`
35
+ # * `organizations/{organization_id}/locations/{location}`
36
+ # @!attribute [rw] policy_binding_id
37
+ # @return [::String]
38
+ # Required. The ID to use for the policy binding, which will become the final
39
+ # component of the policy binding's resource name.
40
+ #
41
+ # This value must start with a lowercase letter followed by up to 62
42
+ # lowercase letters, numbers, hyphens, or dots. Pattern,
43
+ # /[a-z][a-z0-9-\.]\\{2,62}/.
44
+ # @!attribute [rw] policy_binding
45
+ # @return [::Google::Iam::V3::PolicyBinding]
46
+ # Required. The policy binding to create.
47
+ # @!attribute [rw] validate_only
48
+ # @return [::Boolean]
49
+ # Optional. If set, validate the request and preview the creation, but do not
50
+ # actually post it.
51
+ class CreatePolicyBindingRequest
52
+ include ::Google::Protobuf::MessageExts
53
+ extend ::Google::Protobuf::MessageExts::ClassMethods
54
+ end
55
+
56
+ # Request message for GetPolicyBinding method.
57
+ # @!attribute [rw] name
58
+ # @return [::String]
59
+ # Required. The name of the policy binding to retrieve.
60
+ #
61
+ # Format:
62
+ #
63
+ # * `projects/{project_id}/locations/{location}/policyBindings/{policy_binding_id}`
64
+ # * `projects/{project_number}/locations/{location}/policyBindings/{policy_binding_id}`
65
+ # * `folders/{folder_id}/locations/{location}/policyBindings/{policy_binding_id}`
66
+ # * `organizations/{organization_id}/locations/{location}/policyBindings/{policy_binding_id}`
67
+ class GetPolicyBindingRequest
68
+ include ::Google::Protobuf::MessageExts
69
+ extend ::Google::Protobuf::MessageExts::ClassMethods
70
+ end
71
+
72
+ # Request message for UpdatePolicyBinding method.
73
+ # @!attribute [rw] policy_binding
74
+ # @return [::Google::Iam::V3::PolicyBinding]
75
+ # Required. The policy binding to update.
76
+ #
77
+ # The policy binding's `name` field is used to identify the policy binding to
78
+ # update.
79
+ # @!attribute [rw] validate_only
80
+ # @return [::Boolean]
81
+ # Optional. If set, validate the request and preview the update, but do not
82
+ # actually post it.
83
+ # @!attribute [rw] update_mask
84
+ # @return [::Google::Protobuf::FieldMask]
85
+ # Optional. The list of fields to update
86
+ class UpdatePolicyBindingRequest
87
+ include ::Google::Protobuf::MessageExts
88
+ extend ::Google::Protobuf::MessageExts::ClassMethods
89
+ end
90
+
91
+ # Request message for DeletePolicyBinding method.
92
+ # @!attribute [rw] name
93
+ # @return [::String]
94
+ # Required. The name of the policy binding to delete.
95
+ #
96
+ # Format:
97
+ #
98
+ # * `projects/{project_id}/locations/{location}/policyBindings/{policy_binding_id}`
99
+ # * `projects/{project_number}/locations/{location}/policyBindings/{policy_binding_id}`
100
+ # * `folders/{folder_id}/locations/{location}/policyBindings/{policy_binding_id}`
101
+ # * `organizations/{organization_id}/locations/{location}/policyBindings/{policy_binding_id}`
102
+ # @!attribute [rw] etag
103
+ # @return [::String]
104
+ # Optional. The etag of the policy binding.
105
+ # If this is provided, it must match the server's etag.
106
+ # @!attribute [rw] validate_only
107
+ # @return [::Boolean]
108
+ # Optional. If set, validate the request and preview the deletion, but do not
109
+ # actually post it.
110
+ class DeletePolicyBindingRequest
111
+ include ::Google::Protobuf::MessageExts
112
+ extend ::Google::Protobuf::MessageExts::ClassMethods
113
+ end
114
+
115
+ # Request message for ListPolicyBindings method.
116
+ # @!attribute [rw] parent
117
+ # @return [::String]
118
+ # Required. The parent resource, which owns the collection of policy
119
+ # bindings.
120
+ #
121
+ # Format:
122
+ #
123
+ # * `projects/{project_id}/locations/{location}`
124
+ # * `projects/{project_number}/locations/{location}`
125
+ # * `folders/{folder_id}/locations/{location}`
126
+ # * `organizations/{organization_id}/locations/{location}`
127
+ # @!attribute [rw] page_size
128
+ # @return [::Integer]
129
+ # Optional. The maximum number of policy bindings to return. The service may
130
+ # return fewer than this value.
131
+ #
132
+ # If unspecified, at most 50 policy bindings will be returned.
133
+ # The maximum value is 1000; values above 1000 will be coerced to 1000.
134
+ # @!attribute [rw] page_token
135
+ # @return [::String]
136
+ # Optional. A page token, received from a previous `ListPolicyBindings` call.
137
+ # Provide this to retrieve the subsequent page.
138
+ #
139
+ # When paginating, all other parameters provided to `ListPolicyBindings` must
140
+ # match the call that provided the page token.
141
+ # @!attribute [rw] filter
142
+ # @return [::String]
143
+ # Optional. An expression for filtering the results of the request. Filter
144
+ # rules are case insensitive. Some eligible fields for filtering are:
145
+ #
146
+ # + `target`
147
+ # + `policy`
148
+ #
149
+ # Some examples of filter queries:
150
+ #
151
+ # * `target:ex*`: The binding target's name starts with "ex".
152
+ # * `target:example`: The binding target's name is `example`.
153
+ # * `policy:example`: The binding policy's name is `example`.
154
+ class ListPolicyBindingsRequest
155
+ include ::Google::Protobuf::MessageExts
156
+ extend ::Google::Protobuf::MessageExts::ClassMethods
157
+ end
158
+
159
+ # Response message for ListPolicyBindings method.
160
+ # @!attribute [rw] policy_bindings
161
+ # @return [::Array<::Google::Iam::V3::PolicyBinding>]
162
+ # The policy bindings from the specified parent.
163
+ # @!attribute [rw] next_page_token
164
+ # @return [::String]
165
+ # Optional. A token, which can be sent as `page_token` to retrieve the next
166
+ # page. If this field is omitted, there are no subsequent pages.
167
+ class ListPolicyBindingsResponse
168
+ include ::Google::Protobuf::MessageExts
169
+ extend ::Google::Protobuf::MessageExts::ClassMethods
170
+ end
171
+
172
+ # Request message for SearchTargetPolicyBindings method.
173
+ # @!attribute [rw] target
174
+ # @return [::String]
175
+ # Required. The target resource, which is bound to the policy in the binding.
176
+ #
177
+ # Format:
178
+ #
179
+ # * `//iam.googleapis.com/locations/global/workforcePools/POOL_ID`
180
+ # * `//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID`
181
+ # * `//iam.googleapis.com/locations/global/workspace/WORKSPACE_ID`
182
+ # * `//cloudresourcemanager.googleapis.com/projects/{project_number}`
183
+ # * `//cloudresourcemanager.googleapis.com/folders/{folder_id}`
184
+ # * `//cloudresourcemanager.googleapis.com/organizations/{organization_id}`
185
+ # @!attribute [rw] page_size
186
+ # @return [::Integer]
187
+ # Optional. The maximum number of policy bindings to return. The service may
188
+ # return fewer than this value.
189
+ #
190
+ # If unspecified, at most 50 policy bindings will be returned.
191
+ # The maximum value is 1000; values above 1000 will be coerced to 1000.
192
+ # @!attribute [rw] page_token
193
+ # @return [::String]
194
+ # Optional. A page token, received from a previous
195
+ # `SearchTargetPolicyBindingsRequest` call. Provide this to retrieve the
196
+ # subsequent page.
197
+ #
198
+ # When paginating, all other parameters provided to
199
+ # `SearchTargetPolicyBindingsRequest` must match the call that provided the
200
+ # page token.
201
+ # @!attribute [rw] parent
202
+ # @return [::String]
203
+ # Required. The parent resource where this search will be performed. This
204
+ # should be the nearest Resource Manager resource (project, folder, or
205
+ # organization) to the target.
206
+ #
207
+ # Format:
208
+ #
209
+ # * `projects/{project_id}/locations/{location}`
210
+ # * `projects/{project_number}/locations/{location}`
211
+ # * `folders/{folder_id}/locations/{location}`
212
+ # * `organizations/{organization_id}/locations/{location}`
213
+ class SearchTargetPolicyBindingsRequest
214
+ include ::Google::Protobuf::MessageExts
215
+ extend ::Google::Protobuf::MessageExts::ClassMethods
216
+ end
217
+
218
+ # Response message for SearchTargetPolicyBindings method.
219
+ # @!attribute [rw] policy_bindings
220
+ # @return [::Array<::Google::Iam::V3::PolicyBinding>]
221
+ # The policy bindings bound to the specified target.
222
+ # @!attribute [rw] next_page_token
223
+ # @return [::String]
224
+ # Optional. A token, which can be sent as `page_token` to retrieve the next
225
+ # page. If this field is omitted, there are no subsequent pages.
226
+ class SearchTargetPolicyBindingsResponse
227
+ include ::Google::Protobuf::MessageExts
228
+ extend ::Google::Protobuf::MessageExts::ClassMethods
229
+ end
230
+ end
231
+ end
232
+ end
@@ -0,0 +1,191 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 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 V3
23
+ # Request message for CreatePrincipalAccessBoundaryPolicyRequest method.
24
+ # @!attribute [rw] parent
25
+ # @return [::String]
26
+ # Required. The parent resource where this principal access boundary policy
27
+ # will be created. Only organizations are supported.
28
+ #
29
+ # Format:
30
+ # `organizations/{organization_id}/locations/{location}`
31
+ # @!attribute [rw] principal_access_boundary_policy_id
32
+ # @return [::String]
33
+ # Required. The ID to use for the principal access boundary policy, which
34
+ # will become the final component of the principal access boundary policy's
35
+ # resource name.
36
+ #
37
+ # This value must start with a lowercase letter followed by up to 62
38
+ # lowercase letters, numbers, hyphens, or dots. Pattern,
39
+ # /[a-z][a-z0-9-\.]\\{2,62}/.
40
+ # @!attribute [rw] principal_access_boundary_policy
41
+ # @return [::Google::Iam::V3::PrincipalAccessBoundaryPolicy]
42
+ # Required. The principal access boundary policy to create.
43
+ # @!attribute [rw] validate_only
44
+ # @return [::Boolean]
45
+ # Optional. If set, validate the request and preview the creation, but do not
46
+ # actually post it.
47
+ class CreatePrincipalAccessBoundaryPolicyRequest
48
+ include ::Google::Protobuf::MessageExts
49
+ extend ::Google::Protobuf::MessageExts::ClassMethods
50
+ end
51
+
52
+ # Request message for GetPrincipalAccessBoundaryPolicy method.
53
+ # @!attribute [rw] name
54
+ # @return [::String]
55
+ # Required. The name of the principal access boundary policy to retrieve.
56
+ #
57
+ # Format:
58
+ # `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{principal_access_boundary_policy_id}`
59
+ class GetPrincipalAccessBoundaryPolicyRequest
60
+ include ::Google::Protobuf::MessageExts
61
+ extend ::Google::Protobuf::MessageExts::ClassMethods
62
+ end
63
+
64
+ # Request message for UpdatePrincipalAccessBoundaryPolicy method.
65
+ # @!attribute [rw] principal_access_boundary_policy
66
+ # @return [::Google::Iam::V3::PrincipalAccessBoundaryPolicy]
67
+ # Required. The principal access boundary policy to update.
68
+ #
69
+ # The principal access boundary policy's `name` field is used to identify the
70
+ # policy to update.
71
+ # @!attribute [rw] validate_only
72
+ # @return [::Boolean]
73
+ # Optional. If set, validate the request and preview the update, but do not
74
+ # actually post it.
75
+ # @!attribute [rw] update_mask
76
+ # @return [::Google::Protobuf::FieldMask]
77
+ # Optional. The list of fields to update
78
+ class UpdatePrincipalAccessBoundaryPolicyRequest
79
+ include ::Google::Protobuf::MessageExts
80
+ extend ::Google::Protobuf::MessageExts::ClassMethods
81
+ end
82
+
83
+ # Request message for DeletePrincipalAccessBoundaryPolicy method.
84
+ # @!attribute [rw] name
85
+ # @return [::String]
86
+ # Required. The name of the principal access boundary policy to delete.
87
+ #
88
+ # Format:
89
+ # `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{principal_access_boundary_policy_id}`
90
+ # @!attribute [rw] etag
91
+ # @return [::String]
92
+ # Optional. The etag of the principal access boundary policy.
93
+ # If this is provided, it must match the server's etag.
94
+ # @!attribute [rw] validate_only
95
+ # @return [::Boolean]
96
+ # Optional. If set, validate the request and preview the deletion, but do not
97
+ # actually post it.
98
+ # @!attribute [rw] force
99
+ # @return [::Boolean]
100
+ # Optional. If set to true, the request will force the deletion of the policy
101
+ # even if the policy is referenced in policy bindings.
102
+ class DeletePrincipalAccessBoundaryPolicyRequest
103
+ include ::Google::Protobuf::MessageExts
104
+ extend ::Google::Protobuf::MessageExts::ClassMethods
105
+ end
106
+
107
+ # Request message for ListPrincipalAccessBoundaryPolicies method.
108
+ # @!attribute [rw] parent
109
+ # @return [::String]
110
+ # Required. The parent resource, which owns the collection of principal
111
+ # access boundary policies.
112
+ #
113
+ # Format:
114
+ # `organizations/{organization_id}/locations/{location}`
115
+ # @!attribute [rw] page_size
116
+ # @return [::Integer]
117
+ # Optional. The maximum number of principal access boundary policies to
118
+ # return. The service may return fewer than this value.
119
+ #
120
+ # If unspecified, at most 50 principal access boundary policies will be
121
+ # returned. The maximum value is 1000; values above 1000 will be coerced to
122
+ # 1000.
123
+ # @!attribute [rw] page_token
124
+ # @return [::String]
125
+ # Optional. A page token, received from a previous
126
+ # `ListPrincipalAccessBoundaryPolicies` call. Provide this to retrieve the
127
+ # subsequent page.
128
+ #
129
+ # When paginating, all other parameters provided to
130
+ # `ListPrincipalAccessBoundaryPolicies` must match the call that provided the
131
+ # page token.
132
+ class ListPrincipalAccessBoundaryPoliciesRequest
133
+ include ::Google::Protobuf::MessageExts
134
+ extend ::Google::Protobuf::MessageExts::ClassMethods
135
+ end
136
+
137
+ # Response message for ListPrincipalAccessBoundaryPolicies method.
138
+ # @!attribute [rw] principal_access_boundary_policies
139
+ # @return [::Array<::Google::Iam::V3::PrincipalAccessBoundaryPolicy>]
140
+ # The principal access boundary policies from the specified parent.
141
+ # @!attribute [rw] next_page_token
142
+ # @return [::String]
143
+ # Optional. A token, which can be sent as `page_token` to retrieve the next
144
+ # page. If this field is omitted, there are no subsequent pages.
145
+ class ListPrincipalAccessBoundaryPoliciesResponse
146
+ include ::Google::Protobuf::MessageExts
147
+ extend ::Google::Protobuf::MessageExts::ClassMethods
148
+ end
149
+
150
+ # Request message for SearchPrincipalAccessBoundaryPolicyBindings rpc.
151
+ # @!attribute [rw] name
152
+ # @return [::String]
153
+ # Required. The name of the principal access boundary policy.
154
+ # Format:
155
+ # `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{principal_access_boundary_policy_id}`
156
+ # @!attribute [rw] page_size
157
+ # @return [::Integer]
158
+ # Optional. The maximum number of policy bindings to return. The service may
159
+ # return fewer than this value.
160
+ #
161
+ # If unspecified, at most 50 policy bindings will be returned.
162
+ # The maximum value is 1000; values above 1000 will be coerced to 1000.
163
+ # @!attribute [rw] page_token
164
+ # @return [::String]
165
+ # Optional. A page token, received from a previous
166
+ # `SearchPrincipalAccessBoundaryPolicyBindingsRequest` call. Provide this to
167
+ # retrieve the subsequent page.
168
+ #
169
+ # When paginating, all other parameters provided to
170
+ # `SearchPrincipalAccessBoundaryPolicyBindingsRequest` must match the call
171
+ # that provided the page token.
172
+ class SearchPrincipalAccessBoundaryPolicyBindingsRequest
173
+ include ::Google::Protobuf::MessageExts
174
+ extend ::Google::Protobuf::MessageExts::ClassMethods
175
+ end
176
+
177
+ # Response message for SearchPrincipalAccessBoundaryPolicyBindings rpc.
178
+ # @!attribute [rw] policy_bindings
179
+ # @return [::Array<::Google::Iam::V3::PolicyBinding>]
180
+ # The policy bindings that reference the specified policy.
181
+ # @!attribute [rw] next_page_token
182
+ # @return [::String]
183
+ # Optional. A token, which can be sent as `page_token` to retrieve the next
184
+ # page. If this field is omitted, there are no subsequent pages.
185
+ class SearchPrincipalAccessBoundaryPolicyBindingsResponse
186
+ include ::Google::Protobuf::MessageExts
187
+ extend ::Google::Protobuf::MessageExts::ClassMethods
188
+ end
189
+ end
190
+ end
191
+ end
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 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 V3
23
+ # An IAM principal access boundary policy resource.
24
+ # @!attribute [rw] name
25
+ # @return [::String]
26
+ # Identifier. The resource name of the principal access boundary policy.
27
+ #
28
+ # The following format is supported:
29
+ # `organizations/{organization_id}/locations/{location}/principalAccessBoundaryPolicies/{policy_id}`
30
+ # @!attribute [r] uid
31
+ # @return [::String]
32
+ # Output only. The globally unique ID of the principal access boundary
33
+ # policy.
34
+ # @!attribute [rw] etag
35
+ # @return [::String]
36
+ # Optional. The etag for the principal access boundary.
37
+ # If this is provided on update, it must match the server's etag.
38
+ # @!attribute [rw] display_name
39
+ # @return [::String]
40
+ # Optional. The description of the principal access boundary policy. Must be
41
+ # less than or equal to 63 characters.
42
+ # @!attribute [rw] annotations
43
+ # @return [::Google::Protobuf::Map{::String => ::String}]
44
+ # Optional. User defined annotations. See
45
+ # https://google.aip.dev/148#annotations for more details such as format and
46
+ # size limitations
47
+ # @!attribute [r] create_time
48
+ # @return [::Google::Protobuf::Timestamp]
49
+ # Output only. The time when the principal access boundary policy was
50
+ # created.
51
+ # @!attribute [r] update_time
52
+ # @return [::Google::Protobuf::Timestamp]
53
+ # Output only. The time when the principal access boundary policy was most
54
+ # recently updated.
55
+ # @!attribute [rw] details
56
+ # @return [::Google::Iam::V3::PrincipalAccessBoundaryPolicyDetails]
57
+ # Optional. The details for the principal access boundary policy.
58
+ class PrincipalAccessBoundaryPolicy
59
+ include ::Google::Protobuf::MessageExts
60
+ extend ::Google::Protobuf::MessageExts::ClassMethods
61
+
62
+ # @!attribute [rw] key
63
+ # @return [::String]
64
+ # @!attribute [rw] value
65
+ # @return [::String]
66
+ class AnnotationsEntry
67
+ include ::Google::Protobuf::MessageExts
68
+ extend ::Google::Protobuf::MessageExts::ClassMethods
69
+ end
70
+ end
71
+
72
+ # Principal access boundary policy details
73
+ # @!attribute [rw] rules
74
+ # @return [::Array<::Google::Iam::V3::PrincipalAccessBoundaryPolicyRule>]
75
+ # Required. A list of principal access boundary policy rules. The number of
76
+ # rules in a policy is limited to 500.
77
+ # @!attribute [rw] enforcement_version
78
+ # @return [::String]
79
+ # Optional.
80
+ # The version number (for example, `1` or `latest`) that indicates which
81
+ # permissions are able to be blocked by the policy. If empty, the PAB policy
82
+ # version will be set to the most recent version number at the time of the
83
+ # policy's creation.
84
+ class PrincipalAccessBoundaryPolicyDetails
85
+ include ::Google::Protobuf::MessageExts
86
+ extend ::Google::Protobuf::MessageExts::ClassMethods
87
+ end
88
+
89
+ # Principal access boundary policy rule that defines the resource boundary.
90
+ # @!attribute [rw] description
91
+ # @return [::String]
92
+ # Optional. The description of the principal access boundary policy rule.
93
+ # Must be less than or equal to 256 characters.
94
+ # @!attribute [rw] resources
95
+ # @return [::Array<::String>]
96
+ # Required. A list of Resource Manager resources. If a resource is listed in
97
+ # the rule, then the rule applies for that resource and its descendants. The
98
+ # number of resources in a policy is limited to 500 across all rules in the
99
+ # policy.
100
+ #
101
+ # The following resource types are supported:
102
+ #
103
+ # * Organizations, such as
104
+ # `//cloudresourcemanager.googleapis.com/organizations/123`.
105
+ # * Folders, such as `//cloudresourcemanager.googleapis.com/folders/123`.
106
+ # * Projects, such as `//cloudresourcemanager.googleapis.com/projects/123`
107
+ # or `//cloudresourcemanager.googleapis.com/projects/my-project-id`.
108
+ # @!attribute [rw] effect
109
+ # @return [::Google::Iam::V3::PrincipalAccessBoundaryPolicyRule::Effect]
110
+ # Required. The access relationship of principals to the resources in this
111
+ # rule.
112
+ class PrincipalAccessBoundaryPolicyRule
113
+ include ::Google::Protobuf::MessageExts
114
+ extend ::Google::Protobuf::MessageExts::ClassMethods
115
+
116
+ # An effect to describe the access relationship.
117
+ module Effect
118
+ # Effect unspecified.
119
+ EFFECT_UNSPECIFIED = 0
120
+
121
+ # Allows access to the resources in this rule.
122
+ ALLOW = 1
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end