policy.pb.go 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180
  1. // Copyright 2023 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // Code generated by protoc-gen-go. DO NOT EDIT.
  15. // versions:
  16. // protoc-gen-go v1.32.0
  17. // protoc v4.23.2
  18. // source: google/iam/v1/policy.proto
  19. package iampb
  20. import (
  21. reflect "reflect"
  22. sync "sync"
  23. expr "google.golang.org/genproto/googleapis/type/expr"
  24. protoreflect "google.golang.org/protobuf/reflect/protoreflect"
  25. protoimpl "google.golang.org/protobuf/runtime/protoimpl"
  26. )
  27. const (
  28. // Verify that this generated code is sufficiently up-to-date.
  29. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
  30. // Verify that runtime/protoimpl is sufficiently up-to-date.
  31. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
  32. )
  33. // The list of valid permission types for which logging can be configured.
  34. // Admin writes are always logged, and are not configurable.
  35. type AuditLogConfig_LogType int32
  36. const (
  37. // Default case. Should never be this.
  38. AuditLogConfig_LOG_TYPE_UNSPECIFIED AuditLogConfig_LogType = 0
  39. // Admin reads. Example: CloudIAM getIamPolicy
  40. AuditLogConfig_ADMIN_READ AuditLogConfig_LogType = 1
  41. // Data writes. Example: CloudSQL Users create
  42. AuditLogConfig_DATA_WRITE AuditLogConfig_LogType = 2
  43. // Data reads. Example: CloudSQL Users list
  44. AuditLogConfig_DATA_READ AuditLogConfig_LogType = 3
  45. )
  46. // Enum value maps for AuditLogConfig_LogType.
  47. var (
  48. AuditLogConfig_LogType_name = map[int32]string{
  49. 0: "LOG_TYPE_UNSPECIFIED",
  50. 1: "ADMIN_READ",
  51. 2: "DATA_WRITE",
  52. 3: "DATA_READ",
  53. }
  54. AuditLogConfig_LogType_value = map[string]int32{
  55. "LOG_TYPE_UNSPECIFIED": 0,
  56. "ADMIN_READ": 1,
  57. "DATA_WRITE": 2,
  58. "DATA_READ": 3,
  59. }
  60. )
  61. func (x AuditLogConfig_LogType) Enum() *AuditLogConfig_LogType {
  62. p := new(AuditLogConfig_LogType)
  63. *p = x
  64. return p
  65. }
  66. func (x AuditLogConfig_LogType) String() string {
  67. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  68. }
  69. func (AuditLogConfig_LogType) Descriptor() protoreflect.EnumDescriptor {
  70. return file_google_iam_v1_policy_proto_enumTypes[0].Descriptor()
  71. }
  72. func (AuditLogConfig_LogType) Type() protoreflect.EnumType {
  73. return &file_google_iam_v1_policy_proto_enumTypes[0]
  74. }
  75. func (x AuditLogConfig_LogType) Number() protoreflect.EnumNumber {
  76. return protoreflect.EnumNumber(x)
  77. }
  78. // Deprecated: Use AuditLogConfig_LogType.Descriptor instead.
  79. func (AuditLogConfig_LogType) EnumDescriptor() ([]byte, []int) {
  80. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{3, 0}
  81. }
  82. // The type of action performed on a Binding in a policy.
  83. type BindingDelta_Action int32
  84. const (
  85. // Unspecified.
  86. BindingDelta_ACTION_UNSPECIFIED BindingDelta_Action = 0
  87. // Addition of a Binding.
  88. BindingDelta_ADD BindingDelta_Action = 1
  89. // Removal of a Binding.
  90. BindingDelta_REMOVE BindingDelta_Action = 2
  91. )
  92. // Enum value maps for BindingDelta_Action.
  93. var (
  94. BindingDelta_Action_name = map[int32]string{
  95. 0: "ACTION_UNSPECIFIED",
  96. 1: "ADD",
  97. 2: "REMOVE",
  98. }
  99. BindingDelta_Action_value = map[string]int32{
  100. "ACTION_UNSPECIFIED": 0,
  101. "ADD": 1,
  102. "REMOVE": 2,
  103. }
  104. )
  105. func (x BindingDelta_Action) Enum() *BindingDelta_Action {
  106. p := new(BindingDelta_Action)
  107. *p = x
  108. return p
  109. }
  110. func (x BindingDelta_Action) String() string {
  111. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  112. }
  113. func (BindingDelta_Action) Descriptor() protoreflect.EnumDescriptor {
  114. return file_google_iam_v1_policy_proto_enumTypes[1].Descriptor()
  115. }
  116. func (BindingDelta_Action) Type() protoreflect.EnumType {
  117. return &file_google_iam_v1_policy_proto_enumTypes[1]
  118. }
  119. func (x BindingDelta_Action) Number() protoreflect.EnumNumber {
  120. return protoreflect.EnumNumber(x)
  121. }
  122. // Deprecated: Use BindingDelta_Action.Descriptor instead.
  123. func (BindingDelta_Action) EnumDescriptor() ([]byte, []int) {
  124. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{5, 0}
  125. }
  126. // The type of action performed on an audit configuration in a policy.
  127. type AuditConfigDelta_Action int32
  128. const (
  129. // Unspecified.
  130. AuditConfigDelta_ACTION_UNSPECIFIED AuditConfigDelta_Action = 0
  131. // Addition of an audit configuration.
  132. AuditConfigDelta_ADD AuditConfigDelta_Action = 1
  133. // Removal of an audit configuration.
  134. AuditConfigDelta_REMOVE AuditConfigDelta_Action = 2
  135. )
  136. // Enum value maps for AuditConfigDelta_Action.
  137. var (
  138. AuditConfigDelta_Action_name = map[int32]string{
  139. 0: "ACTION_UNSPECIFIED",
  140. 1: "ADD",
  141. 2: "REMOVE",
  142. }
  143. AuditConfigDelta_Action_value = map[string]int32{
  144. "ACTION_UNSPECIFIED": 0,
  145. "ADD": 1,
  146. "REMOVE": 2,
  147. }
  148. )
  149. func (x AuditConfigDelta_Action) Enum() *AuditConfigDelta_Action {
  150. p := new(AuditConfigDelta_Action)
  151. *p = x
  152. return p
  153. }
  154. func (x AuditConfigDelta_Action) String() string {
  155. return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  156. }
  157. func (AuditConfigDelta_Action) Descriptor() protoreflect.EnumDescriptor {
  158. return file_google_iam_v1_policy_proto_enumTypes[2].Descriptor()
  159. }
  160. func (AuditConfigDelta_Action) Type() protoreflect.EnumType {
  161. return &file_google_iam_v1_policy_proto_enumTypes[2]
  162. }
  163. func (x AuditConfigDelta_Action) Number() protoreflect.EnumNumber {
  164. return protoreflect.EnumNumber(x)
  165. }
  166. // Deprecated: Use AuditConfigDelta_Action.Descriptor instead.
  167. func (AuditConfigDelta_Action) EnumDescriptor() ([]byte, []int) {
  168. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{6, 0}
  169. }
  170. // An Identity and Access Management (IAM) policy, which specifies access
  171. // controls for Google Cloud resources.
  172. //
  173. // A `Policy` is a collection of `bindings`. A `binding` binds one or more
  174. // `members`, or principals, to a single `role`. Principals can be user
  175. // accounts, service accounts, Google groups, and domains (such as G Suite). A
  176. // `role` is a named list of permissions; each `role` can be an IAM predefined
  177. // role or a user-created custom role.
  178. //
  179. // For some types of Google Cloud resources, a `binding` can also specify a
  180. // `condition`, which is a logical expression that allows access to a resource
  181. // only if the expression evaluates to `true`. A condition can add constraints
  182. // based on attributes of the request, the resource, or both. To learn which
  183. // resources support conditions in their IAM policies, see the
  184. // [IAM
  185. // documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
  186. //
  187. // **JSON example:**
  188. //
  189. // ```
  190. //
  191. // {
  192. // "bindings": [
  193. // {
  194. // "role": "roles/resourcemanager.organizationAdmin",
  195. // "members": [
  196. // "user:mike@example.com",
  197. // "group:admins@example.com",
  198. // "domain:google.com",
  199. // "serviceAccount:my-project-id@appspot.gserviceaccount.com"
  200. // ]
  201. // },
  202. // {
  203. // "role": "roles/resourcemanager.organizationViewer",
  204. // "members": [
  205. // "user:eve@example.com"
  206. // ],
  207. // "condition": {
  208. // "title": "expirable access",
  209. // "description": "Does not grant access after Sep 2020",
  210. // "expression": "request.time <
  211. // timestamp('2020-10-01T00:00:00.000Z')",
  212. // }
  213. // }
  214. // ],
  215. // "etag": "BwWWja0YfJA=",
  216. // "version": 3
  217. // }
  218. //
  219. // ```
  220. //
  221. // **YAML example:**
  222. //
  223. // ```
  224. //
  225. // bindings:
  226. // - members:
  227. // - user:mike@example.com
  228. // - group:admins@example.com
  229. // - domain:google.com
  230. // - serviceAccount:my-project-id@appspot.gserviceaccount.com
  231. // role: roles/resourcemanager.organizationAdmin
  232. // - members:
  233. // - user:eve@example.com
  234. // role: roles/resourcemanager.organizationViewer
  235. // condition:
  236. // title: expirable access
  237. // description: Does not grant access after Sep 2020
  238. // expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
  239. // etag: BwWWja0YfJA=
  240. // version: 3
  241. //
  242. // ```
  243. //
  244. // For a description of IAM and its features, see the
  245. // [IAM documentation](https://cloud.google.com/iam/docs/).
  246. type Policy struct {
  247. state protoimpl.MessageState
  248. sizeCache protoimpl.SizeCache
  249. unknownFields protoimpl.UnknownFields
  250. // Specifies the format of the policy.
  251. //
  252. // Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
  253. // are rejected.
  254. //
  255. // Any operation that affects conditional role bindings must specify version
  256. // `3`. This requirement applies to the following operations:
  257. //
  258. // - Getting a policy that includes a conditional role binding
  259. // - Adding a conditional role binding to a policy
  260. // - Changing a conditional role binding in a policy
  261. // - Removing any role binding, with or without a condition, from a policy
  262. // that includes conditions
  263. //
  264. // **Important:** If you use IAM Conditions, you must include the `etag` field
  265. // whenever you call `setIamPolicy`. If you omit this field, then IAM allows
  266. // you to overwrite a version `3` policy with a version `1` policy, and all of
  267. // the conditions in the version `3` policy are lost.
  268. //
  269. // If a policy does not include any conditions, operations on that policy may
  270. // specify any valid version or leave the field unset.
  271. //
  272. // To learn which resources support conditions in their IAM policies, see the
  273. // [IAM
  274. // documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
  275. Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
  276. // Associates a list of `members`, or principals, with a `role`. Optionally,
  277. // may specify a `condition` that determines how and when the `bindings` are
  278. // applied. Each of the `bindings` must contain at least one principal.
  279. //
  280. // The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250
  281. // of these principals can be Google groups. Each occurrence of a principal
  282. // counts towards these limits. For example, if the `bindings` grant 50
  283. // different roles to `user:alice@example.com`, and not to any other
  284. // principal, then you can add another 1,450 principals to the `bindings` in
  285. // the `Policy`.
  286. Bindings []*Binding `protobuf:"bytes,4,rep,name=bindings,proto3" json:"bindings,omitempty"`
  287. // Specifies cloud audit logging configuration for this policy.
  288. AuditConfigs []*AuditConfig `protobuf:"bytes,6,rep,name=audit_configs,json=auditConfigs,proto3" json:"audit_configs,omitempty"`
  289. // `etag` is used for optimistic concurrency control as a way to help
  290. // prevent simultaneous updates of a policy from overwriting each other.
  291. // It is strongly suggested that systems make use of the `etag` in the
  292. // read-modify-write cycle to perform policy updates in order to avoid race
  293. // conditions: An `etag` is returned in the response to `getIamPolicy`, and
  294. // systems are expected to put that etag in the request to `setIamPolicy` to
  295. // ensure that their change will be applied to the same version of the policy.
  296. //
  297. // **Important:** If you use IAM Conditions, you must include the `etag` field
  298. // whenever you call `setIamPolicy`. If you omit this field, then IAM allows
  299. // you to overwrite a version `3` policy with a version `1` policy, and all of
  300. // the conditions in the version `3` policy are lost.
  301. Etag []byte `protobuf:"bytes,3,opt,name=etag,proto3" json:"etag,omitempty"`
  302. }
  303. func (x *Policy) Reset() {
  304. *x = Policy{}
  305. if protoimpl.UnsafeEnabled {
  306. mi := &file_google_iam_v1_policy_proto_msgTypes[0]
  307. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  308. ms.StoreMessageInfo(mi)
  309. }
  310. }
  311. func (x *Policy) String() string {
  312. return protoimpl.X.MessageStringOf(x)
  313. }
  314. func (*Policy) ProtoMessage() {}
  315. func (x *Policy) ProtoReflect() protoreflect.Message {
  316. mi := &file_google_iam_v1_policy_proto_msgTypes[0]
  317. if protoimpl.UnsafeEnabled && x != nil {
  318. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  319. if ms.LoadMessageInfo() == nil {
  320. ms.StoreMessageInfo(mi)
  321. }
  322. return ms
  323. }
  324. return mi.MessageOf(x)
  325. }
  326. // Deprecated: Use Policy.ProtoReflect.Descriptor instead.
  327. func (*Policy) Descriptor() ([]byte, []int) {
  328. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{0}
  329. }
  330. func (x *Policy) GetVersion() int32 {
  331. if x != nil {
  332. return x.Version
  333. }
  334. return 0
  335. }
  336. func (x *Policy) GetBindings() []*Binding {
  337. if x != nil {
  338. return x.Bindings
  339. }
  340. return nil
  341. }
  342. func (x *Policy) GetAuditConfigs() []*AuditConfig {
  343. if x != nil {
  344. return x.AuditConfigs
  345. }
  346. return nil
  347. }
  348. func (x *Policy) GetEtag() []byte {
  349. if x != nil {
  350. return x.Etag
  351. }
  352. return nil
  353. }
  354. // Associates `members`, or principals, with a `role`.
  355. type Binding struct {
  356. state protoimpl.MessageState
  357. sizeCache protoimpl.SizeCache
  358. unknownFields protoimpl.UnknownFields
  359. // Role that is assigned to the list of `members`, or principals.
  360. // For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
  361. Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
  362. // Specifies the principals requesting access for a Google Cloud resource.
  363. // `members` can have the following values:
  364. //
  365. // - `allUsers`: A special identifier that represents anyone who is
  366. // on the internet; with or without a Google account.
  367. //
  368. // - `allAuthenticatedUsers`: A special identifier that represents anyone
  369. // who is authenticated with a Google account or a service account.
  370. //
  371. // - `user:{emailid}`: An email address that represents a specific Google
  372. // account. For example, `alice@example.com` .
  373. //
  374. // - `serviceAccount:{emailid}`: An email address that represents a service
  375. // account. For example, `my-other-app@appspot.gserviceaccount.com`.
  376. //
  377. // - `group:{emailid}`: An email address that represents a Google group.
  378. // For example, `admins@example.com`.
  379. //
  380. // - `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
  381. // identifier) representing a user that has been recently deleted. For
  382. // example, `alice@example.com?uid=123456789012345678901`. If the user is
  383. // recovered, this value reverts to `user:{emailid}` and the recovered user
  384. // retains the role in the binding.
  385. //
  386. // - `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
  387. // unique identifier) representing a service account that has been recently
  388. // deleted. For example,
  389. // `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
  390. // If the service account is undeleted, this value reverts to
  391. // `serviceAccount:{emailid}` and the undeleted service account retains the
  392. // role in the binding.
  393. //
  394. // - `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
  395. // identifier) representing a Google group that has been recently
  396. // deleted. For example, `admins@example.com?uid=123456789012345678901`. If
  397. // the group is recovered, this value reverts to `group:{emailid}` and the
  398. // recovered group retains the role in the binding.
  399. //
  400. // - `domain:{domain}`: The G Suite domain (primary) that represents all the
  401. // users of that domain. For example, `google.com` or `example.com`.
  402. Members []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`
  403. // The condition that is associated with this binding.
  404. //
  405. // If the condition evaluates to `true`, then this binding applies to the
  406. // current request.
  407. //
  408. // If the condition evaluates to `false`, then this binding does not apply to
  409. // the current request. However, a different role binding might grant the same
  410. // role to one or more of the principals in this binding.
  411. //
  412. // To learn which resources support conditions in their IAM policies, see the
  413. // [IAM
  414. // documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
  415. Condition *expr.Expr `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"`
  416. }
  417. func (x *Binding) Reset() {
  418. *x = Binding{}
  419. if protoimpl.UnsafeEnabled {
  420. mi := &file_google_iam_v1_policy_proto_msgTypes[1]
  421. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  422. ms.StoreMessageInfo(mi)
  423. }
  424. }
  425. func (x *Binding) String() string {
  426. return protoimpl.X.MessageStringOf(x)
  427. }
  428. func (*Binding) ProtoMessage() {}
  429. func (x *Binding) ProtoReflect() protoreflect.Message {
  430. mi := &file_google_iam_v1_policy_proto_msgTypes[1]
  431. if protoimpl.UnsafeEnabled && x != nil {
  432. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  433. if ms.LoadMessageInfo() == nil {
  434. ms.StoreMessageInfo(mi)
  435. }
  436. return ms
  437. }
  438. return mi.MessageOf(x)
  439. }
  440. // Deprecated: Use Binding.ProtoReflect.Descriptor instead.
  441. func (*Binding) Descriptor() ([]byte, []int) {
  442. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{1}
  443. }
  444. func (x *Binding) GetRole() string {
  445. if x != nil {
  446. return x.Role
  447. }
  448. return ""
  449. }
  450. func (x *Binding) GetMembers() []string {
  451. if x != nil {
  452. return x.Members
  453. }
  454. return nil
  455. }
  456. func (x *Binding) GetCondition() *expr.Expr {
  457. if x != nil {
  458. return x.Condition
  459. }
  460. return nil
  461. }
  462. // Specifies the audit configuration for a service.
  463. // The configuration determines which permission types are logged, and what
  464. // identities, if any, are exempted from logging.
  465. // An AuditConfig must have one or more AuditLogConfigs.
  466. //
  467. // If there are AuditConfigs for both `allServices` and a specific service,
  468. // the union of the two AuditConfigs is used for that service: the log_types
  469. // specified in each AuditConfig are enabled, and the exempted_members in each
  470. // AuditLogConfig are exempted.
  471. //
  472. // Example Policy with multiple AuditConfigs:
  473. //
  474. // {
  475. // "audit_configs": [
  476. // {
  477. // "service": "allServices",
  478. // "audit_log_configs": [
  479. // {
  480. // "log_type": "DATA_READ",
  481. // "exempted_members": [
  482. // "user:jose@example.com"
  483. // ]
  484. // },
  485. // {
  486. // "log_type": "DATA_WRITE"
  487. // },
  488. // {
  489. // "log_type": "ADMIN_READ"
  490. // }
  491. // ]
  492. // },
  493. // {
  494. // "service": "sampleservice.googleapis.com",
  495. // "audit_log_configs": [
  496. // {
  497. // "log_type": "DATA_READ"
  498. // },
  499. // {
  500. // "log_type": "DATA_WRITE",
  501. // "exempted_members": [
  502. // "user:aliya@example.com"
  503. // ]
  504. // }
  505. // ]
  506. // }
  507. // ]
  508. // }
  509. //
  510. // For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
  511. // logging. It also exempts `jose@example.com` from DATA_READ logging, and
  512. // `aliya@example.com` from DATA_WRITE logging.
  513. type AuditConfig struct {
  514. state protoimpl.MessageState
  515. sizeCache protoimpl.SizeCache
  516. unknownFields protoimpl.UnknownFields
  517. // Specifies a service that will be enabled for audit logging.
  518. // For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
  519. // `allServices` is a special value that covers all services.
  520. Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"`
  521. // The configuration for logging of each type of permission.
  522. AuditLogConfigs []*AuditLogConfig `protobuf:"bytes,3,rep,name=audit_log_configs,json=auditLogConfigs,proto3" json:"audit_log_configs,omitempty"`
  523. }
  524. func (x *AuditConfig) Reset() {
  525. *x = AuditConfig{}
  526. if protoimpl.UnsafeEnabled {
  527. mi := &file_google_iam_v1_policy_proto_msgTypes[2]
  528. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  529. ms.StoreMessageInfo(mi)
  530. }
  531. }
  532. func (x *AuditConfig) String() string {
  533. return protoimpl.X.MessageStringOf(x)
  534. }
  535. func (*AuditConfig) ProtoMessage() {}
  536. func (x *AuditConfig) ProtoReflect() protoreflect.Message {
  537. mi := &file_google_iam_v1_policy_proto_msgTypes[2]
  538. if protoimpl.UnsafeEnabled && x != nil {
  539. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  540. if ms.LoadMessageInfo() == nil {
  541. ms.StoreMessageInfo(mi)
  542. }
  543. return ms
  544. }
  545. return mi.MessageOf(x)
  546. }
  547. // Deprecated: Use AuditConfig.ProtoReflect.Descriptor instead.
  548. func (*AuditConfig) Descriptor() ([]byte, []int) {
  549. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{2}
  550. }
  551. func (x *AuditConfig) GetService() string {
  552. if x != nil {
  553. return x.Service
  554. }
  555. return ""
  556. }
  557. func (x *AuditConfig) GetAuditLogConfigs() []*AuditLogConfig {
  558. if x != nil {
  559. return x.AuditLogConfigs
  560. }
  561. return nil
  562. }
  563. // Provides the configuration for logging a type of permissions.
  564. // Example:
  565. //
  566. // {
  567. // "audit_log_configs": [
  568. // {
  569. // "log_type": "DATA_READ",
  570. // "exempted_members": [
  571. // "user:jose@example.com"
  572. // ]
  573. // },
  574. // {
  575. // "log_type": "DATA_WRITE"
  576. // }
  577. // ]
  578. // }
  579. //
  580. // This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
  581. // jose@example.com from DATA_READ logging.
  582. type AuditLogConfig struct {
  583. state protoimpl.MessageState
  584. sizeCache protoimpl.SizeCache
  585. unknownFields protoimpl.UnknownFields
  586. // The log type that this config enables.
  587. LogType AuditLogConfig_LogType `protobuf:"varint,1,opt,name=log_type,json=logType,proto3,enum=google.iam.v1.AuditLogConfig_LogType" json:"log_type,omitempty"`
  588. // Specifies the identities that do not cause logging for this type of
  589. // permission.
  590. // Follows the same format of
  591. // [Binding.members][google.iam.v1.Binding.members].
  592. ExemptedMembers []string `protobuf:"bytes,2,rep,name=exempted_members,json=exemptedMembers,proto3" json:"exempted_members,omitempty"`
  593. }
  594. func (x *AuditLogConfig) Reset() {
  595. *x = AuditLogConfig{}
  596. if protoimpl.UnsafeEnabled {
  597. mi := &file_google_iam_v1_policy_proto_msgTypes[3]
  598. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  599. ms.StoreMessageInfo(mi)
  600. }
  601. }
  602. func (x *AuditLogConfig) String() string {
  603. return protoimpl.X.MessageStringOf(x)
  604. }
  605. func (*AuditLogConfig) ProtoMessage() {}
  606. func (x *AuditLogConfig) ProtoReflect() protoreflect.Message {
  607. mi := &file_google_iam_v1_policy_proto_msgTypes[3]
  608. if protoimpl.UnsafeEnabled && x != nil {
  609. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  610. if ms.LoadMessageInfo() == nil {
  611. ms.StoreMessageInfo(mi)
  612. }
  613. return ms
  614. }
  615. return mi.MessageOf(x)
  616. }
  617. // Deprecated: Use AuditLogConfig.ProtoReflect.Descriptor instead.
  618. func (*AuditLogConfig) Descriptor() ([]byte, []int) {
  619. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{3}
  620. }
  621. func (x *AuditLogConfig) GetLogType() AuditLogConfig_LogType {
  622. if x != nil {
  623. return x.LogType
  624. }
  625. return AuditLogConfig_LOG_TYPE_UNSPECIFIED
  626. }
  627. func (x *AuditLogConfig) GetExemptedMembers() []string {
  628. if x != nil {
  629. return x.ExemptedMembers
  630. }
  631. return nil
  632. }
  633. // The difference delta between two policies.
  634. type PolicyDelta struct {
  635. state protoimpl.MessageState
  636. sizeCache protoimpl.SizeCache
  637. unknownFields protoimpl.UnknownFields
  638. // The delta for Bindings between two policies.
  639. BindingDeltas []*BindingDelta `protobuf:"bytes,1,rep,name=binding_deltas,json=bindingDeltas,proto3" json:"binding_deltas,omitempty"`
  640. // The delta for AuditConfigs between two policies.
  641. AuditConfigDeltas []*AuditConfigDelta `protobuf:"bytes,2,rep,name=audit_config_deltas,json=auditConfigDeltas,proto3" json:"audit_config_deltas,omitempty"`
  642. }
  643. func (x *PolicyDelta) Reset() {
  644. *x = PolicyDelta{}
  645. if protoimpl.UnsafeEnabled {
  646. mi := &file_google_iam_v1_policy_proto_msgTypes[4]
  647. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  648. ms.StoreMessageInfo(mi)
  649. }
  650. }
  651. func (x *PolicyDelta) String() string {
  652. return protoimpl.X.MessageStringOf(x)
  653. }
  654. func (*PolicyDelta) ProtoMessage() {}
  655. func (x *PolicyDelta) ProtoReflect() protoreflect.Message {
  656. mi := &file_google_iam_v1_policy_proto_msgTypes[4]
  657. if protoimpl.UnsafeEnabled && x != nil {
  658. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  659. if ms.LoadMessageInfo() == nil {
  660. ms.StoreMessageInfo(mi)
  661. }
  662. return ms
  663. }
  664. return mi.MessageOf(x)
  665. }
  666. // Deprecated: Use PolicyDelta.ProtoReflect.Descriptor instead.
  667. func (*PolicyDelta) Descriptor() ([]byte, []int) {
  668. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{4}
  669. }
  670. func (x *PolicyDelta) GetBindingDeltas() []*BindingDelta {
  671. if x != nil {
  672. return x.BindingDeltas
  673. }
  674. return nil
  675. }
  676. func (x *PolicyDelta) GetAuditConfigDeltas() []*AuditConfigDelta {
  677. if x != nil {
  678. return x.AuditConfigDeltas
  679. }
  680. return nil
  681. }
  682. // One delta entry for Binding. Each individual change (only one member in each
  683. // entry) to a binding will be a separate entry.
  684. type BindingDelta struct {
  685. state protoimpl.MessageState
  686. sizeCache protoimpl.SizeCache
  687. unknownFields protoimpl.UnknownFields
  688. // The action that was performed on a Binding.
  689. // Required
  690. Action BindingDelta_Action `protobuf:"varint,1,opt,name=action,proto3,enum=google.iam.v1.BindingDelta_Action" json:"action,omitempty"`
  691. // Role that is assigned to `members`.
  692. // For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
  693. // Required
  694. Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
  695. // A single identity requesting access for a Google Cloud resource.
  696. // Follows the same format of Binding.members.
  697. // Required
  698. Member string `protobuf:"bytes,3,opt,name=member,proto3" json:"member,omitempty"`
  699. // The condition that is associated with this binding.
  700. Condition *expr.Expr `protobuf:"bytes,4,opt,name=condition,proto3" json:"condition,omitempty"`
  701. }
  702. func (x *BindingDelta) Reset() {
  703. *x = BindingDelta{}
  704. if protoimpl.UnsafeEnabled {
  705. mi := &file_google_iam_v1_policy_proto_msgTypes[5]
  706. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  707. ms.StoreMessageInfo(mi)
  708. }
  709. }
  710. func (x *BindingDelta) String() string {
  711. return protoimpl.X.MessageStringOf(x)
  712. }
  713. func (*BindingDelta) ProtoMessage() {}
  714. func (x *BindingDelta) ProtoReflect() protoreflect.Message {
  715. mi := &file_google_iam_v1_policy_proto_msgTypes[5]
  716. if protoimpl.UnsafeEnabled && x != nil {
  717. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  718. if ms.LoadMessageInfo() == nil {
  719. ms.StoreMessageInfo(mi)
  720. }
  721. return ms
  722. }
  723. return mi.MessageOf(x)
  724. }
  725. // Deprecated: Use BindingDelta.ProtoReflect.Descriptor instead.
  726. func (*BindingDelta) Descriptor() ([]byte, []int) {
  727. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{5}
  728. }
  729. func (x *BindingDelta) GetAction() BindingDelta_Action {
  730. if x != nil {
  731. return x.Action
  732. }
  733. return BindingDelta_ACTION_UNSPECIFIED
  734. }
  735. func (x *BindingDelta) GetRole() string {
  736. if x != nil {
  737. return x.Role
  738. }
  739. return ""
  740. }
  741. func (x *BindingDelta) GetMember() string {
  742. if x != nil {
  743. return x.Member
  744. }
  745. return ""
  746. }
  747. func (x *BindingDelta) GetCondition() *expr.Expr {
  748. if x != nil {
  749. return x.Condition
  750. }
  751. return nil
  752. }
  753. // One delta entry for AuditConfig. Each individual change (only one
  754. // exempted_member in each entry) to a AuditConfig will be a separate entry.
  755. type AuditConfigDelta struct {
  756. state protoimpl.MessageState
  757. sizeCache protoimpl.SizeCache
  758. unknownFields protoimpl.UnknownFields
  759. // The action that was performed on an audit configuration in a policy.
  760. // Required
  761. Action AuditConfigDelta_Action `protobuf:"varint,1,opt,name=action,proto3,enum=google.iam.v1.AuditConfigDelta_Action" json:"action,omitempty"`
  762. // Specifies a service that was configured for Cloud Audit Logging.
  763. // For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
  764. // `allServices` is a special value that covers all services.
  765. // Required
  766. Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
  767. // A single identity that is exempted from "data access" audit
  768. // logging for the `service` specified above.
  769. // Follows the same format of Binding.members.
  770. ExemptedMember string `protobuf:"bytes,3,opt,name=exempted_member,json=exemptedMember,proto3" json:"exempted_member,omitempty"`
  771. // Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always
  772. // enabled, and cannot be configured.
  773. // Required
  774. LogType string `protobuf:"bytes,4,opt,name=log_type,json=logType,proto3" json:"log_type,omitempty"`
  775. }
  776. func (x *AuditConfigDelta) Reset() {
  777. *x = AuditConfigDelta{}
  778. if protoimpl.UnsafeEnabled {
  779. mi := &file_google_iam_v1_policy_proto_msgTypes[6]
  780. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  781. ms.StoreMessageInfo(mi)
  782. }
  783. }
  784. func (x *AuditConfigDelta) String() string {
  785. return protoimpl.X.MessageStringOf(x)
  786. }
  787. func (*AuditConfigDelta) ProtoMessage() {}
  788. func (x *AuditConfigDelta) ProtoReflect() protoreflect.Message {
  789. mi := &file_google_iam_v1_policy_proto_msgTypes[6]
  790. if protoimpl.UnsafeEnabled && x != nil {
  791. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  792. if ms.LoadMessageInfo() == nil {
  793. ms.StoreMessageInfo(mi)
  794. }
  795. return ms
  796. }
  797. return mi.MessageOf(x)
  798. }
  799. // Deprecated: Use AuditConfigDelta.ProtoReflect.Descriptor instead.
  800. func (*AuditConfigDelta) Descriptor() ([]byte, []int) {
  801. return file_google_iam_v1_policy_proto_rawDescGZIP(), []int{6}
  802. }
  803. func (x *AuditConfigDelta) GetAction() AuditConfigDelta_Action {
  804. if x != nil {
  805. return x.Action
  806. }
  807. return AuditConfigDelta_ACTION_UNSPECIFIED
  808. }
  809. func (x *AuditConfigDelta) GetService() string {
  810. if x != nil {
  811. return x.Service
  812. }
  813. return ""
  814. }
  815. func (x *AuditConfigDelta) GetExemptedMember() string {
  816. if x != nil {
  817. return x.ExemptedMember
  818. }
  819. return ""
  820. }
  821. func (x *AuditConfigDelta) GetLogType() string {
  822. if x != nil {
  823. return x.LogType
  824. }
  825. return ""
  826. }
  827. var File_google_iam_v1_policy_proto protoreflect.FileDescriptor
  828. var file_google_iam_v1_policy_proto_rawDesc = []byte{
  829. 0x0a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f,
  830. 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x67, 0x6f,
  831. 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x16, 0x67, 0x6f, 0x6f,
  832. 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x70, 0x72,
  833. 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x01, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x18,
  834. 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
  835. 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x62, 0x69, 0x6e, 0x64,
  836. 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
  837. 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69,
  838. 0x6e, 0x67, 0x52, 0x08, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x0d,
  839. 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x06, 0x20,
  840. 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d,
  841. 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
  842. 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x12, 0x0a,
  843. 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x65, 0x74, 0x61,
  844. 0x67, 0x22, 0x68, 0x0a, 0x07, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04,
  845. 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65,
  846. 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
  847. 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x63, 0x6f,
  848. 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
  849. 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x78, 0x70, 0x72,
  850. 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x72, 0x0a, 0x0b, 0x41,
  851. 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65,
  852. 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72,
  853. 0x76, 0x69, 0x63, 0x65, 0x12, 0x49, 0x0a, 0x11, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x6c, 0x6f,
  854. 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
  855. 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
  856. 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f,
  857. 0x61, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22,
  858. 0xd1, 0x01, 0x0a, 0x0e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x66,
  859. 0x69, 0x67, 0x12, 0x40, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
  860. 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61,
  861. 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x43, 0x6f, 0x6e,
  862. 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6c, 0x6f, 0x67,
  863. 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x74, 0x65, 0x64,
  864. 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f,
  865. 0x65, 0x78, 0x65, 0x6d, 0x70, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22,
  866. 0x52, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x4f,
  867. 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
  868. 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x5f, 0x52, 0x45,
  869. 0x41, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x57, 0x52, 0x49,
  870. 0x54, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x41,
  871. 0x44, 0x10, 0x03, 0x22, 0xa2, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65,
  872. 0x6c, 0x74, 0x61, 0x12, 0x42, 0x0a, 0x0e, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64,
  873. 0x65, 0x6c, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f,
  874. 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64,
  875. 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e,
  876. 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x73, 0x12, 0x4f, 0x0a, 0x13, 0x61, 0x75, 0x64, 0x69, 0x74,
  877. 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x73, 0x18, 0x02,
  878. 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61,
  879. 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  880. 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x11, 0x61, 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66,
  881. 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x73, 0x22, 0xde, 0x01, 0x0a, 0x0c, 0x42, 0x69, 0x6e,
  882. 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x06, 0x61, 0x63, 0x74,
  883. 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  884. 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e,
  885. 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61,
  886. 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20,
  887. 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d,
  888. 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65,
  889. 0x72, 0x12, 0x2f, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
  890. 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79,
  891. 0x70, 0x65, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
  892. 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12,
  893. 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
  894. 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a,
  895. 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x02, 0x22, 0xe7, 0x01, 0x0a, 0x10, 0x41, 0x75,
  896. 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x3e,
  897. 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26,
  898. 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41,
  899. 0x75, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x2e,
  900. 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18,
  901. 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
  902. 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x6d,
  903. 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
  904. 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65,
  905. 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20,
  906. 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x35, 0x0a, 0x06,
  907. 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
  908. 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07,
  909. 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56,
  910. 0x45, 0x10, 0x02, 0x42, 0x7c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  911. 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  912. 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x29, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67,
  913. 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x69, 0x61, 0x6d,
  914. 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x69, 0x61, 0x6d, 0x70, 0x62, 0x3b, 0x69, 0x61, 0x6d,
  915. 0x70, 0x62, 0xf8, 0x01, 0x01, 0xaa, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43,
  916. 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x49, 0x61, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x6f,
  917. 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x49, 0x61, 0x6d, 0x5c, 0x56,
  918. 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  919. }
  920. var (
  921. file_google_iam_v1_policy_proto_rawDescOnce sync.Once
  922. file_google_iam_v1_policy_proto_rawDescData = file_google_iam_v1_policy_proto_rawDesc
  923. )
  924. func file_google_iam_v1_policy_proto_rawDescGZIP() []byte {
  925. file_google_iam_v1_policy_proto_rawDescOnce.Do(func() {
  926. file_google_iam_v1_policy_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_iam_v1_policy_proto_rawDescData)
  927. })
  928. return file_google_iam_v1_policy_proto_rawDescData
  929. }
  930. var file_google_iam_v1_policy_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
  931. var file_google_iam_v1_policy_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
  932. var file_google_iam_v1_policy_proto_goTypes = []interface{}{
  933. (AuditLogConfig_LogType)(0), // 0: google.iam.v1.AuditLogConfig.LogType
  934. (BindingDelta_Action)(0), // 1: google.iam.v1.BindingDelta.Action
  935. (AuditConfigDelta_Action)(0), // 2: google.iam.v1.AuditConfigDelta.Action
  936. (*Policy)(nil), // 3: google.iam.v1.Policy
  937. (*Binding)(nil), // 4: google.iam.v1.Binding
  938. (*AuditConfig)(nil), // 5: google.iam.v1.AuditConfig
  939. (*AuditLogConfig)(nil), // 6: google.iam.v1.AuditLogConfig
  940. (*PolicyDelta)(nil), // 7: google.iam.v1.PolicyDelta
  941. (*BindingDelta)(nil), // 8: google.iam.v1.BindingDelta
  942. (*AuditConfigDelta)(nil), // 9: google.iam.v1.AuditConfigDelta
  943. (*expr.Expr)(nil), // 10: google.type.Expr
  944. }
  945. var file_google_iam_v1_policy_proto_depIdxs = []int32{
  946. 4, // 0: google.iam.v1.Policy.bindings:type_name -> google.iam.v1.Binding
  947. 5, // 1: google.iam.v1.Policy.audit_configs:type_name -> google.iam.v1.AuditConfig
  948. 10, // 2: google.iam.v1.Binding.condition:type_name -> google.type.Expr
  949. 6, // 3: google.iam.v1.AuditConfig.audit_log_configs:type_name -> google.iam.v1.AuditLogConfig
  950. 0, // 4: google.iam.v1.AuditLogConfig.log_type:type_name -> google.iam.v1.AuditLogConfig.LogType
  951. 8, // 5: google.iam.v1.PolicyDelta.binding_deltas:type_name -> google.iam.v1.BindingDelta
  952. 9, // 6: google.iam.v1.PolicyDelta.audit_config_deltas:type_name -> google.iam.v1.AuditConfigDelta
  953. 1, // 7: google.iam.v1.BindingDelta.action:type_name -> google.iam.v1.BindingDelta.Action
  954. 10, // 8: google.iam.v1.BindingDelta.condition:type_name -> google.type.Expr
  955. 2, // 9: google.iam.v1.AuditConfigDelta.action:type_name -> google.iam.v1.AuditConfigDelta.Action
  956. 10, // [10:10] is the sub-list for method output_type
  957. 10, // [10:10] is the sub-list for method input_type
  958. 10, // [10:10] is the sub-list for extension type_name
  959. 10, // [10:10] is the sub-list for extension extendee
  960. 0, // [0:10] is the sub-list for field type_name
  961. }
  962. func init() { file_google_iam_v1_policy_proto_init() }
  963. func file_google_iam_v1_policy_proto_init() {
  964. if File_google_iam_v1_policy_proto != nil {
  965. return
  966. }
  967. if !protoimpl.UnsafeEnabled {
  968. file_google_iam_v1_policy_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  969. switch v := v.(*Policy); i {
  970. case 0:
  971. return &v.state
  972. case 1:
  973. return &v.sizeCache
  974. case 2:
  975. return &v.unknownFields
  976. default:
  977. return nil
  978. }
  979. }
  980. file_google_iam_v1_policy_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  981. switch v := v.(*Binding); i {
  982. case 0:
  983. return &v.state
  984. case 1:
  985. return &v.sizeCache
  986. case 2:
  987. return &v.unknownFields
  988. default:
  989. return nil
  990. }
  991. }
  992. file_google_iam_v1_policy_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  993. switch v := v.(*AuditConfig); i {
  994. case 0:
  995. return &v.state
  996. case 1:
  997. return &v.sizeCache
  998. case 2:
  999. return &v.unknownFields
  1000. default:
  1001. return nil
  1002. }
  1003. }
  1004. file_google_iam_v1_policy_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1005. switch v := v.(*AuditLogConfig); i {
  1006. case 0:
  1007. return &v.state
  1008. case 1:
  1009. return &v.sizeCache
  1010. case 2:
  1011. return &v.unknownFields
  1012. default:
  1013. return nil
  1014. }
  1015. }
  1016. file_google_iam_v1_policy_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1017. switch v := v.(*PolicyDelta); i {
  1018. case 0:
  1019. return &v.state
  1020. case 1:
  1021. return &v.sizeCache
  1022. case 2:
  1023. return &v.unknownFields
  1024. default:
  1025. return nil
  1026. }
  1027. }
  1028. file_google_iam_v1_policy_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1029. switch v := v.(*BindingDelta); i {
  1030. case 0:
  1031. return &v.state
  1032. case 1:
  1033. return &v.sizeCache
  1034. case 2:
  1035. return &v.unknownFields
  1036. default:
  1037. return nil
  1038. }
  1039. }
  1040. file_google_iam_v1_policy_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1041. switch v := v.(*AuditConfigDelta); i {
  1042. case 0:
  1043. return &v.state
  1044. case 1:
  1045. return &v.sizeCache
  1046. case 2:
  1047. return &v.unknownFields
  1048. default:
  1049. return nil
  1050. }
  1051. }
  1052. }
  1053. type x struct{}
  1054. out := protoimpl.TypeBuilder{
  1055. File: protoimpl.DescBuilder{
  1056. GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1057. RawDescriptor: file_google_iam_v1_policy_proto_rawDesc,
  1058. NumEnums: 3,
  1059. NumMessages: 7,
  1060. NumExtensions: 0,
  1061. NumServices: 0,
  1062. },
  1063. GoTypes: file_google_iam_v1_policy_proto_goTypes,
  1064. DependencyIndexes: file_google_iam_v1_policy_proto_depIdxs,
  1065. EnumInfos: file_google_iam_v1_policy_proto_enumTypes,
  1066. MessageInfos: file_google_iam_v1_policy_proto_msgTypes,
  1067. }.Build()
  1068. File_google_iam_v1_policy_proto = out.File
  1069. file_google_iam_v1_policy_proto_rawDesc = nil
  1070. file_google_iam_v1_policy_proto_goTypes = nil
  1071. file_google_iam_v1_policy_proto_depIdxs = nil
  1072. }