...

Source file src/cloud.google.com/go/iam/apiv1/iampb/policy.pb.go

Documentation: cloud.google.com/go/iam/apiv1/iampb

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

View as plain text