Skip to content

Commit fb335e0

Browse files
author
CBWS
committed
Update generated protobuf docs based on v0.0.9
1 parent b9fa973 commit fb335e0

4 files changed

Lines changed: 1189 additions & 0 deletions

File tree

protobuf/iam-policy.md

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
# Protocol Documentation
2+
<a name="top"></a>
3+
4+
## Table of Contents
5+
6+
- [cbws/iam/policy/v1alpha1/policy.proto](#cbws/iam/policy/v1alpha1/policy.proto)
7+
- [Binding](#cbws.iam.policy.v1alpha1.Binding)
8+
- [Policy](#cbws.iam.policy.v1alpha1.Policy)
9+
10+
- [cbws/iam/policy/v1alpha1/request_response.proto](#cbws/iam/policy/v1alpha1/request_response.proto)
11+
- [GetPolicyRequest](#cbws.iam.policy.v1alpha1.GetPolicyRequest)
12+
- [SetPolicyRequest](#cbws.iam.policy.v1alpha1.SetPolicyRequest)
13+
- [TestPermissionsRequest](#cbws.iam.policy.v1alpha1.TestPermissionsRequest)
14+
- [TestPermissionsResponse](#cbws.iam.policy.v1alpha1.TestPermissionsResponse)
15+
16+
- [Scalar Value Types](#scalar-value-types)
17+
18+
19+
20+
<a name="cbws/iam/policy/v1alpha1/policy.proto"></a>
21+
<p align="right"><a href="#top">Top</a></p>
22+
23+
## cbws/iam/policy/v1alpha1/policy.proto
24+
25+
26+
27+
<a name="cbws.iam.policy.v1alpha1.Binding"></a>
28+
29+
### Binding
30+
Associates `members` with a `role`.
31+
32+
33+
| Field | Type | Label | Description |
34+
| ----- | ---- | ----- | ----------- |
35+
| role | [string](#string) | | Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. |
36+
| description | [string](#string) | | |
37+
| members | [string](#string) | repeated | Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values:
38+
39+
* `anonymous`: A special identifier that represents anyone who is on the internet
40+
41+
* `allUsers`: A special identifier that represents anyone who is authenticated with a Cloudbear account or a service account.
42+
43+
* `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` .
44+
45+
* `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`.
46+
47+
* `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`.
48+
49+
* `principal:{id}`: Identifier of the specific principal, can be used if access to either the user, serviceAccount or group is not available and only the principal id is known. This member type is only available when setting a IAM policy and is not returned when getting a IAM policy. |
50+
51+
52+
53+
54+
55+
56+
<a name="cbws.iam.policy.v1alpha1.Policy"></a>
57+
58+
### Policy
59+
Defines an Identity and Access Management (IAM) policy. It is used to
60+
specify access control policies for Cloud Platform resources.
61+
62+
63+
A `Policy` is a collection of `bindings`. A `binding` binds one or more
64+
`members` to a single `role`. Members can be user accounts, service accounts,
65+
Google groups, and domains (such as G Suite). A `role` is a named list of
66+
permissions (defined by IAM or configured by users). A `binding` can
67+
optionally specify a `condition`, which is a logic expression that further
68+
constrains the role binding based on attributes about the request and/or
69+
target resource.
70+
71+
**JSON Example**
72+
73+
{
74+
&#34;bindings&#34;: [
75+
{
76+
&#34;role&#34;: &#34;roles/resourcemanager.organizationAdmin&#34;,
77+
&#34;members&#34;: [
78+
&#34;user:mike@example.com&#34;,
79+
&#34;group:admins@example.com&#34;,
80+
&#34;domain:google.com&#34;,
81+
&#34;serviceAccount:my-project-id@appspot.gserviceaccount.com&#34;
82+
]
83+
},
84+
{
85+
&#34;role&#34;: &#34;roles/resourcemanager.organizationViewer&#34;,
86+
&#34;members&#34;: [&#34;user:eve@example.com&#34;],
87+
&#34;condition&#34;: {
88+
&#34;title&#34;: &#34;expirable access&#34;,
89+
&#34;description&#34;: &#34;Does not grant access after Sep 2020&#34;,
90+
&#34;expression&#34;: &#34;request.time &lt;
91+
timestamp(&#39;2020-10-01T00:00:00.000Z&#39;)&#34;,
92+
}
93+
}
94+
]
95+
}
96+
97+
**YAML Example**
98+
99+
bindings:
100+
- members:
101+
- user:mike@example.com
102+
- group:admins@example.com
103+
- domain:google.com
104+
- serviceAccount:my-project-id@appspot.gserviceaccount.com
105+
role: roles/resourcemanager.organizationAdmin
106+
- members:
107+
- user:eve@example.com
108+
role: roles/resourcemanager.organizationViewer
109+
condition:
110+
title: expirable access
111+
description: Does not grant access after Sep 2020
112+
expression: request.time &lt; timestamp(&#39;2020-10-01T00:00:00.000Z&#39;)
113+
114+
For a description of IAM and its features, see the
115+
[IAM developer&#39;s guide](https://cloud.google.com/iam/docs).
116+
117+
118+
| Field | Type | Label | Description |
119+
| ----- | ---- | ----- | ----------- |
120+
| bindings | [Binding](#cbws.iam.policy.v1alpha1.Binding) | repeated | Associates a list of `members` to a `role`. Optionally may specify a `condition` that determines when binding is in effect. `bindings` with no members will result in an error. |
121+
| etag | [bytes](#bytes) | | `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy.
122+
123+
If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten. Due to blind-set semantics of an etag-less policy, &#39;setIamPolicy&#39; will not fail even if the incoming policy version does not meet the requirements for modifying the stored policy. |
124+
125+
126+
127+
128+
129+
130+
131+
132+
133+
134+
135+
136+
137+
138+
139+
<a name="cbws/iam/policy/v1alpha1/request_response.proto"></a>
140+
<p align="right"><a href="#top">Top</a></p>
141+
142+
## cbws/iam/policy/v1alpha1/request_response.proto
143+
144+
145+
146+
<a name="cbws.iam.policy.v1alpha1.GetPolicyRequest"></a>
147+
148+
### GetPolicyRequest
149+
150+
151+
152+
| Field | Type | Label | Description |
153+
| ----- | ---- | ----- | ----------- |
154+
| resource | [string](#string) | | REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. |
155+
156+
157+
158+
159+
160+
161+
<a name="cbws.iam.policy.v1alpha1.SetPolicyRequest"></a>
162+
163+
### SetPolicyRequest
164+
165+
166+
167+
| Field | Type | Label | Description |
168+
| ----- | ---- | ----- | ----------- |
169+
| resource | [string](#string) | | REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. |
170+
| policy | [Policy](#cbws.iam.policy.v1alpha1.Policy) | | REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them. |
171+
172+
173+
174+
175+
176+
177+
<a name="cbws.iam.policy.v1alpha1.TestPermissionsRequest"></a>
178+
179+
### TestPermissionsRequest
180+
181+
182+
183+
| Field | Type | Label | Description |
184+
| ----- | ---- | ----- | ----------- |
185+
| resource | [string](#string) | | REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. |
186+
| permissions | [string](#string) | repeated | The set of permissions to check for the `resource`. Permissions with wildcards (such as &#39;*&#39; or &#39;storage.*&#39;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). |
187+
188+
189+
190+
191+
192+
193+
<a name="cbws.iam.policy.v1alpha1.TestPermissionsResponse"></a>
194+
195+
### TestPermissionsResponse
196+
197+
198+
199+
| Field | Type | Label | Description |
200+
| ----- | ---- | ----- | ----------- |
201+
| permissions | [string](#string) | repeated | A subset of `TestPermissionsRequest.permissions` that the caller is allowed. |
202+
203+
204+
205+
206+
207+
208+
209+
210+
211+
212+
213+
214+
215+
216+
217+
## Scalar Value Types
218+
219+
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
220+
| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- |
221+
| <a name="double" /> double | | double | double | float | float64 | double | float | Float |
222+
| <a name="float" /> float | | float | float | float | float32 | float | float | Float |
223+
| <a name="int32" /> int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
224+
| <a name="int64" /> int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
225+
| <a name="uint32" /> uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
226+
| <a name="uint64" /> uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
227+
| <a name="sint32" /> sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
228+
| <a name="sint64" /> sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
229+
| <a name="fixed32" /> fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
230+
| <a name="fixed64" /> fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
231+
| <a name="sfixed32" /> sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
232+
| <a name="sfixed64" /> sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
233+
| <a name="bool" /> bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
234+
| <a name="string" /> string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
235+
| <a name="bytes" /> bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |
236+

0 commit comments

Comments
 (0)