Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-grpc-google-iam-v1 for
openSUSE:Factory checked in at 2025-10-22 12:15:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-grpc-google-iam-v1 (Old)
and /work/SRC/openSUSE:Factory/.python-grpc-google-iam-v1.new.18484 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-grpc-google-iam-v1"
Wed Oct 22 12:15:30 2025 rev:12 rq:1312818 version:0.14.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-grpc-google-iam-v1/python-grpc-google-iam-v1.changes
2025-04-02 17:15:54.051736281 +0200
+++
/work/SRC/openSUSE:Factory/.python-grpc-google-iam-v1.new.18484/python-grpc-google-iam-v1.changes
2025-10-22 12:20:05.501093817 +0200
@@ -1,0 +2,7 @@
+Tue Oct 21 08:37:28 UTC 2025 - John Paul Adrian Glaubitz
<[email protected]>
+
+- Update to 0.14.3
+ * Add support for Python 3.14
+ * Regenerate pb2 files with protoc v25.3
+
+-------------------------------------------------------------------
Old:
----
grpc_google_iam_v1-0.14.2.tar.gz
New:
----
grpc_google_iam_v1-0.14.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-grpc-google-iam-v1.spec ++++++
--- /var/tmp/diff_new_pack.Bgyn8J/_old 2025-10-22 12:20:06.185122638 +0200
+++ /var/tmp/diff_new_pack.Bgyn8J/_new 2025-10-22 12:20:06.185122638 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-grpc-google-iam-v1
-Version: 0.14.2
+Version: 0.14.3
Release: 0
Summary: GRPC library for the google-iam-v1 service
License: Apache-2.0
++++++ grpc_google_iam_v1-0.14.2.tar.gz -> grpc_google_iam_v1-0.14.3.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/grpc_google_iam_v1-0.14.2/PKG-INFO
new/grpc_google_iam_v1-0.14.3/PKG-INFO
--- old/grpc_google_iam_v1-0.14.2/PKG-INFO 2025-03-17 12:40:21.878439000
+0100
+++ new/grpc_google_iam_v1-0.14.3/PKG-INFO 2025-10-15 23:10:19.748551800
+0200
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: grpc-google-iam-v1
-Version: 0.14.2
+Version: 0.14.3
Summary: IAM API client library
Author-email: Google LLC <[email protected]>
License: Apache 2.0
@@ -17,6 +17,7 @@
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet
Requires-Python: >=3.7
@@ -25,6 +26,7 @@
Requires-Dist: grpcio<2.0.0,>=1.44.0
Requires-Dist: googleapis-common-protos[grpc]<2.0.0,>=1.56.0
Requires-Dist:
protobuf!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0,>=3.20.2
+Dynamic: license-file
Python Client for Cloud Identity and Access Management
======================================================
@@ -190,7 +192,7 @@
import logging
- from google.cloud.translate_v3 import translate
+ from google.cloud import library_v1
base_logger = logging.getLogger("google")
base_logger.addHandler(logging.StreamHandler())
@@ -202,7 +204,7 @@
import logging
- from google.cloud.translate_v3 import translate
+ from google.cloud import library_v1
base_logger = logging.getLogger("google.cloud.library_v1")
base_logger.addHandler(logging.StreamHandler())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/grpc_google_iam_v1-0.14.2/README.rst
new/grpc_google_iam_v1-0.14.3/README.rst
--- old/grpc_google_iam_v1-0.14.2/README.rst 2025-03-17 12:21:09.000000000
+0100
+++ new/grpc_google_iam_v1-0.14.3/README.rst 2025-10-15 23:09:47.000000000
+0200
@@ -162,7 +162,7 @@
import logging
- from google.cloud.translate_v3 import translate
+ from google.cloud import library_v1
base_logger = logging.getLogger("google")
base_logger.addHandler(logging.StreamHandler())
@@ -174,7 +174,7 @@
import logging
- from google.cloud.translate_v3 import translate
+ from google.cloud import library_v1
base_logger = logging.getLogger("google.cloud.library_v1")
base_logger.addHandler(logging.StreamHandler())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/iam_policy.proto
new/grpc_google_iam_v1-0.14.3/google/iam/v1/iam_policy.proto
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/iam_policy.proto
1970-01-01 01:00:00.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/iam_policy.proto
2025-10-15 23:09:47.000000000 +0200
@@ -0,0 +1,157 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.iam.v1;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/iam/v1/options.proto";
+import "google/iam/v1/policy.proto";
+import "google/protobuf/field_mask.proto";
+
+option csharp_namespace = "Google.Cloud.Iam.V1";
+option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb";
+option java_multiple_files = true;
+option java_outer_classname = "IamPolicyProto";
+option java_package = "com.google.iam.v1";
+option php_namespace = "Google\\Cloud\\Iam\\V1";
+
+// API Overview
+//
+// Manages Identity and Access Management (IAM) policies.
+//
+// Any implementation of an API that offers access control features
+// implements the google.iam.v1.IAMPolicy interface.
+//
+// ## Data model
+//
+// Access control is applied when a principal (user or service account), takes
+// some action on a resource exposed by a service. Resources, identified by
+// URI-like names, are the unit of access control specification. Service
+// implementations can choose the granularity of access control and the
+// supported permissions for their resources.
+// For example one database service may allow access control to be
+// specified only at the Table level, whereas another might allow access
control
+// to also be specified at the Column level.
+//
+// ## Policy Structure
+//
+// See google.iam.v1.Policy
+//
+// This is intentionally not a CRUD style API because access control policies
+// are created and deleted implicitly with the resources to which they are
+// attached.
+service IAMPolicy {
+ option (google.api.default_host) = "iam-meta-api.googleapis.com";
+
+ // Sets the access control policy on the specified resource. Replaces any
+ // existing policy.
+ //
+ // Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
errors.
+ rpc SetIamPolicy(SetIamPolicyRequest) returns (Policy) {
+ option (google.api.http) = {
+ post: "/v1/{resource=**}:setIamPolicy"
+ body: "*"
+ };
+ }
+
+ // Gets the access control policy for a resource.
+ // Returns an empty policy if the resource exists and does not have a policy
+ // set.
+ rpc GetIamPolicy(GetIamPolicyRequest) returns (Policy) {
+ option (google.api.http) = {
+ post: "/v1/{resource=**}:getIamPolicy"
+ body: "*"
+ };
+ }
+
+ // Returns permissions that a caller has on the specified resource.
+ // If the resource does not exist, this will return an empty set of
+ // permissions, not a `NOT_FOUND` error.
+ //
+ // Note: This operation is designed to be used for building permission-aware
+ // UIs and command-line tools, not for authorization checking. This operation
+ // may "fail open" without warning.
+ rpc TestIamPermissions(TestIamPermissionsRequest)
+ returns (TestIamPermissionsResponse) {
+ option (google.api.http) = {
+ post: "/v1/{resource=**}:testIamPermissions"
+ body: "*"
+ };
+ }
+}
+
+// Request message for `SetIamPolicy` method.
+message SetIamPolicyRequest {
+ // REQUIRED: The resource for which the policy is being specified.
+ // See the operation documentation for the appropriate value for this field.
+ string resource = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference).type = "*"
+ ];
+
+ // REQUIRED: The complete policy to be applied to the `resource`. The size of
+ // the policy is limited to a few 10s of KB. An empty policy is a
+ // valid policy but certain Cloud Platform services (such as Projects)
+ // might reject them.
+ Policy policy = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // OPTIONAL: A FieldMask specifying which fields of the policy to modify.
Only
+ // the fields in the mask will be modified. If no mask is provided, the
+ // following default mask is used:
+ //
+ // `paths: "bindings, etag"`
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for `GetIamPolicy` method.
+message GetIamPolicyRequest {
+ // REQUIRED: The resource for which the policy is being requested.
+ // See the operation documentation for the appropriate value for this field.
+ string resource = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference).type = "*"
+ ];
+
+ // OPTIONAL: A `GetPolicyOptions` object for specifying options to
+ // `GetIamPolicy`.
+ GetPolicyOptions options = 2;
+}
+
+// Request message for `TestIamPermissions` method.
+message TestIamPermissionsRequest {
+ // REQUIRED: The resource for which the policy detail is being requested.
+ // See the operation documentation for the appropriate value for this field.
+ string resource = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference).type = "*"
+ ];
+
+ // The set of permissions to check for the `resource`. Permissions with
+ // wildcards (such as '*' or 'storage.*') are not allowed. For more
+ // information see
+ // [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ repeated string permissions = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Response message for `TestIamPermissions` method.
+message TestIamPermissionsResponse {
+ // A subset of `TestPermissionsRequest.permissions` that the caller is
+ // allowed.
+ repeated string permissions = 1;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/iam_policy_pb2.py
new/grpc_google_iam_v1-0.14.3/google/iam/v1/iam_policy_pb2.py
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/iam_policy_pb2.py
2025-03-17 12:21:09.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/iam_policy_pb2.py
2025-10-15 23:09:49.000000000 +0200
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: google/iam/v1/iam_policy.proto
+# Protobuf Python Version: 4.25.3
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
@@ -27,14 +28,13 @@
_sym_db = _symbol_database.Default()
-from google.api import field_behavior_pb2 as
google_dot_api_dot_field__behavior__pb2
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.api import client_pb2 as google_dot_api_dot_client__pb2
+from google.api import field_behavior_pb2 as
google_dot_api_dot_field__behavior__pb2
from google.api import resource_pb2 as google_dot_api_dot_resource__pb2
-from google.protobuf import field_mask_pb2 as
google_dot_protobuf_dot_field__mask__pb2
-
from google.iam.v1 import options_pb2 as google_dot_iam_dot_v1_dot_options__pb2
from google.iam.v1 import policy_pb2 as google_dot_iam_dot_v1_dot_policy__pb2
+from google.protobuf import field_mask_pb2 as
google_dot_protobuf_dot_field__mask__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
b'\n\x1egoogle/iam/v1/iam_policy.proto\x12\rgoogle.iam.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/iam/v1/options.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a
google/protobuf/field_mask.proto"\x8f\x01\n\x13SetIamPolicyRequest\x12\x1b\n\x08resource\x18\x01
\x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12*\n\x06policy\x18\x02
\x01(\x0b\x32\x15.google.iam.v1.PolicyB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x03
\x01(\x0b\x32\x1a.google.protobuf.FieldMask"d\n\x13GetIamPolicyRequest\x12\x1b\n\x08resource\x18\x01
\x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12\x30\n\x07options\x18\x02
\x01(\x0b\x32\x1f.google.iam.v1.GetPolicyOptions"R\n\x19TestIamPermissionsRequest\x12\x1b\n\x08resource\x18\x01
\x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12\x18\n\x0bpermissions\x18\x02
\x03(\tB\x03\xe0\x41\x02"1\n\x1aTestIamPermissionsResponse\x12\x13\n\x0bpermissions\x18\x01
\x03(\t2\xb4\x03\n\tIA
MPolicy\x12t\n\x0cSetIamPolicy\x12".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy")\x82\xd3\xe4\x93\x02#"\x1e/v1/{resource=**}:setIamPolicy:\x01*\x12t\n\x0cGetIamPolicy\x12".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy")\x82\xd3\xe4\x93\x02#"\x1e/v1/{resource=**}:getIamPolicy:\x01*\x12\x9a\x01\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse"/\x82\xd3\xe4\x93\x02)"$/v1/{resource=**}:testIamPermissions:\x01*\x1a\x1e\xca\x41\x1biam-meta-api.googleapis.comB|\n\x11\x63om.google.iam.v1B\x0eIamPolicyProtoP\x01Z)cloud.google.com/go/iam/apiv1/iampb;iampb\xaa\x02\x13Google.Cloud.Iam.V1\xca\x02\x13Google\\Cloud\\Iam\\V1b\x06proto3'
@@ -46,42 +46,46 @@
DESCRIPTOR, "google.iam.v1.iam_policy_pb2", _globals
)
if _descriptor._USE_C_DESCRIPTORS == False:
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options =
b"\n\021com.google.iam.v1B\016IamPolicyProtoP\001Z)cloud.google.com/go/iam/apiv1/iampb;iampb\252\002\023Google.Cloud.Iam.V1\312\002\023Google\\Cloud\\Iam\\V1"
- _SETIAMPOLICYREQUEST.fields_by_name["resource"]._options = None
- _SETIAMPOLICYREQUEST.fields_by_name[
+ _globals["DESCRIPTOR"]._options = None
+ _globals[
+ "DESCRIPTOR"
+ ]._serialized_options =
b"\n\021com.google.iam.v1B\016IamPolicyProtoP\001Z)cloud.google.com/go/iam/apiv1/iampb;iampb\252\002\023Google.Cloud.Iam.V1\312\002\023Google\\Cloud\\Iam\\V1"
+ _globals["_SETIAMPOLICYREQUEST"].fields_by_name["resource"]._options = None
+ _globals["_SETIAMPOLICYREQUEST"].fields_by_name[
"resource"
]._serialized_options = b"\340A\002\372A\003\n\001*"
- _SETIAMPOLICYREQUEST.fields_by_name["policy"]._options = None
- _SETIAMPOLICYREQUEST.fields_by_name["policy"]._serialized_options =
b"\340A\002"
- _GETIAMPOLICYREQUEST.fields_by_name["resource"]._options = None
- _GETIAMPOLICYREQUEST.fields_by_name[
+ _globals["_SETIAMPOLICYREQUEST"].fields_by_name["policy"]._options = None
+ _globals["_SETIAMPOLICYREQUEST"].fields_by_name[
+ "policy"
+ ]._serialized_options = b"\340A\002"
+ _globals["_GETIAMPOLICYREQUEST"].fields_by_name["resource"]._options = None
+ _globals["_GETIAMPOLICYREQUEST"].fields_by_name[
"resource"
]._serialized_options = b"\340A\002\372A\003\n\001*"
- _TESTIAMPERMISSIONSREQUEST.fields_by_name["resource"]._options = None
- _TESTIAMPERMISSIONSREQUEST.fields_by_name[
+ _globals["_TESTIAMPERMISSIONSREQUEST"].fields_by_name["resource"]._options
= None
+ _globals["_TESTIAMPERMISSIONSREQUEST"].fields_by_name[
"resource"
]._serialized_options = b"\340A\002\372A\003\n\001*"
- _TESTIAMPERMISSIONSREQUEST.fields_by_name["permissions"]._options = None
- _TESTIAMPERMISSIONSREQUEST.fields_by_name[
+
_globals["_TESTIAMPERMISSIONSREQUEST"].fields_by_name["permissions"]._options =
None
+ _globals["_TESTIAMPERMISSIONSREQUEST"].fields_by_name[
"permissions"
]._serialized_options = b"\340A\002"
- _IAMPOLICY._options = None
- _IAMPOLICY._serialized_options = b"\312A\033iam-meta-api.googleapis.com"
- _IAMPOLICY.methods_by_name["SetIamPolicy"]._options = None
- _IAMPOLICY.methods_by_name[
+ _globals["_IAMPOLICY"]._options = None
+ _globals["_IAMPOLICY"]._serialized_options =
b"\312A\033iam-meta-api.googleapis.com"
+ _globals["_IAMPOLICY"].methods_by_name["SetIamPolicy"]._options = None
+ _globals["_IAMPOLICY"].methods_by_name[
"SetIamPolicy"
]._serialized_options = (
b'\202\323\344\223\002#"\036/v1/{resource=**}:setIamPolicy:\001*'
)
- _IAMPOLICY.methods_by_name["GetIamPolicy"]._options = None
- _IAMPOLICY.methods_by_name[
+ _globals["_IAMPOLICY"].methods_by_name["GetIamPolicy"]._options = None
+ _globals["_IAMPOLICY"].methods_by_name[
"GetIamPolicy"
]._serialized_options = (
b'\202\323\344\223\002#"\036/v1/{resource=**}:getIamPolicy:\001*'
)
- _IAMPOLICY.methods_by_name["TestIamPermissions"]._options = None
- _IAMPOLICY.methods_by_name[
+ _globals["_IAMPOLICY"].methods_by_name["TestIamPermissions"]._options =
None
+ _globals["_IAMPOLICY"].methods_by_name[
"TestIamPermissions"
]._serialized_options = (
b'\202\323\344\223\002)"$/v1/{resource=**}:testIamPermissions:\001*'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/iam_policy_pb2.pyi
new/grpc_google_iam_v1-0.14.3/google/iam/v1/iam_policy_pb2.pyi
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/iam_policy_pb2.pyi
1970-01-01 01:00:00.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/iam_policy_pb2.pyi
2025-10-15 23:09:49.000000000 +0200
@@ -0,0 +1,77 @@
+# Copyright 2025 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from typing import ClassVar as _ClassVar
+from typing import Iterable as _Iterable
+from typing import Mapping as _Mapping
+from typing import Optional as _Optional
+from typing import Union as _Union
+
+from google.api import annotations_pb2 as _annotations_pb2
+from google.api import client_pb2 as _client_pb2
+from google.api import field_behavior_pb2 as _field_behavior_pb2
+from google.api import resource_pb2 as _resource_pb2
+from google.iam.v1 import options_pb2 as _options_pb2
+from google.iam.v1 import policy_pb2 as _policy_pb2
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import field_mask_pb2 as _field_mask_pb2
+from google.protobuf import message as _message
+from google.protobuf.internal import containers as _containers
+
+DESCRIPTOR: _descriptor.FileDescriptor
+
+class SetIamPolicyRequest(_message.Message):
+ __slots__ = ("resource", "policy", "update_mask")
+ RESOURCE_FIELD_NUMBER: _ClassVar[int]
+ POLICY_FIELD_NUMBER: _ClassVar[int]
+ UPDATE_MASK_FIELD_NUMBER: _ClassVar[int]
+ resource: str
+ policy: _policy_pb2.Policy
+ update_mask: _field_mask_pb2.FieldMask
+ def __init__(
+ self,
+ resource: _Optional[str] = ...,
+ policy: _Optional[_Union[_policy_pb2.Policy, _Mapping]] = ...,
+ update_mask: _Optional[_Union[_field_mask_pb2.FieldMask, _Mapping]] =
...,
+ ) -> None: ...
+
+class GetIamPolicyRequest(_message.Message):
+ __slots__ = ("resource", "options")
+ RESOURCE_FIELD_NUMBER: _ClassVar[int]
+ OPTIONS_FIELD_NUMBER: _ClassVar[int]
+ resource: str
+ options: _options_pb2.GetPolicyOptions
+ def __init__(
+ self,
+ resource: _Optional[str] = ...,
+ options: _Optional[_Union[_options_pb2.GetPolicyOptions, _Mapping]] =
...,
+ ) -> None: ...
+
+class TestIamPermissionsRequest(_message.Message):
+ __slots__ = ("resource", "permissions")
+ RESOURCE_FIELD_NUMBER: _ClassVar[int]
+ PERMISSIONS_FIELD_NUMBER: _ClassVar[int]
+ resource: str
+ permissions: _containers.RepeatedScalarFieldContainer[str]
+ def __init__(
+ self,
+ resource: _Optional[str] = ...,
+ permissions: _Optional[_Iterable[str]] = ...,
+ ) -> None: ...
+
+class TestIamPermissionsResponse(_message.Message):
+ __slots__ = ("permissions",)
+ PERMISSIONS_FIELD_NUMBER: _ClassVar[int]
+ permissions: _containers.RepeatedScalarFieldContainer[str]
+ def __init__(self, permissions: _Optional[_Iterable[str]] = ...) -> None:
...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/options.proto
new/grpc_google_iam_v1-0.14.3/google/iam/v1/options.proto
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/options.proto 1970-01-01
01:00:00.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/options.proto 2025-10-15
23:09:47.000000000 +0200
@@ -0,0 +1,48 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.iam.v1;
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Iam.V1";
+option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb";
+option java_multiple_files = true;
+option java_outer_classname = "OptionsProto";
+option java_package = "com.google.iam.v1";
+option php_namespace = "Google\\Cloud\\Iam\\V1";
+
+// Encapsulates settings provided to GetIamPolicy.
+message GetPolicyOptions {
+ // Optional. The maximum policy version that will be used to format the
+ // policy.
+ //
+ // Valid values are 0, 1, and 3. Requests specifying an invalid value will be
+ // rejected.
+ //
+ // Requests for policies with any conditional role bindings must specify
+ // version 3. Policies with no conditional role bindings may specify any
valid
+ // value or leave the field unset.
+ //
+ // The policy in the response might use the policy version that you
specified,
+ // or it might use a lower policy version. For example, if you specify
version
+ // 3, but the policy has no conditional role bindings, the response uses
+ // version 1.
+ //
+ // To learn which resources support conditions in their IAM policies, see the
+ // [IAM
+ //
documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+ int32 requested_policy_version = 1;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/options_pb2.py
new/grpc_google_iam_v1-0.14.3/google/iam/v1/options_pb2.py
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/options_pb2.py 2025-03-17
12:21:09.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/options_pb2.py 2025-10-15
23:09:50.000000000 +0200
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: google/iam/v1/options.proto
+# Protobuf Python Version: 4.25.3
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
@@ -37,8 +38,10 @@
DESCRIPTOR, "google.iam.v1.options_pb2", _globals
)
if _descriptor._USE_C_DESCRIPTORS == False:
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options =
b"\n\021com.google.iam.v1B\014OptionsProtoP\001Z)cloud.google.com/go/iam/apiv1/iampb;iampb\370\001\001\252\002\023Google.Cloud.Iam.V1\312\002\023Google\\Cloud\\Iam\\V1"
+ _globals["DESCRIPTOR"]._options = None
+ _globals[
+ "DESCRIPTOR"
+ ]._serialized_options =
b"\n\021com.google.iam.v1B\014OptionsProtoP\001Z)cloud.google.com/go/iam/apiv1/iampb;iampb\370\001\001\252\002\023Google.Cloud.Iam.V1\312\002\023Google\\Cloud\\Iam\\V1"
_globals["_GETPOLICYOPTIONS"]._serialized_start = 46
_globals["_GETPOLICYOPTIONS"]._serialized_end = 98
# @@protoc_insertion_point(module_scope)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/options_pb2.pyi
new/grpc_google_iam_v1-0.14.3/google/iam/v1/options_pb2.pyi
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/options_pb2.pyi 1970-01-01
01:00:00.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/options_pb2.pyi 2025-10-15
23:09:48.000000000 +0200
@@ -0,0 +1,27 @@
+# Copyright 2025 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from typing import ClassVar as _ClassVar
+from typing import Optional as _Optional
+
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+
+DESCRIPTOR: _descriptor.FileDescriptor
+
+class GetPolicyOptions(_message.Message):
+ __slots__ = ("requested_policy_version",)
+ REQUESTED_POLICY_VERSION_FIELD_NUMBER: _ClassVar[int]
+ requested_policy_version: int
+ def __init__(self, requested_policy_version: _Optional[int] = ...) ->
None: ...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/grpc_google_iam_v1-0.14.2/google/iam/v1/policy.proto
new/grpc_google_iam_v1-0.14.3/google/iam/v1/policy.proto
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/policy.proto 1970-01-01
01:00:00.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/policy.proto 2025-10-15
23:09:48.000000000 +0200
@@ -0,0 +1,410 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.iam.v1;
+
+import "google/type/expr.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Iam.V1";
+option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb";
+option java_multiple_files = true;
+option java_outer_classname = "PolicyProto";
+option java_package = "com.google.iam.v1";
+option php_namespace = "Google\\Cloud\\Iam\\V1";
+
+// An Identity and Access Management (IAM) policy, which specifies access
+// controls for Google Cloud resources.
+//
+//
+// A `Policy` is a collection of `bindings`. A `binding` binds one or more
+// `members`, or principals, to a single `role`. Principals can be user
+// accounts, service accounts, Google groups, and domains (such as G Suite). A
+// `role` is a named list of permissions; each `role` can be an IAM predefined
+// role or a user-created custom role.
+//
+// For some types of Google Cloud resources, a `binding` can also specify a
+// `condition`, which is a logical expression that allows access to a resource
+// only if the expression evaluates to `true`. A condition can add constraints
+// based on attributes of the request, the resource, or both. To learn which
+// resources support conditions in their IAM policies, see the
+// [IAM
+//
documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+//
+// **JSON example:**
+//
+// ```
+// {
+// "bindings": [
+// {
+// "role": "roles/resourcemanager.organizationAdmin",
+// "members": [
+// "user:[email protected]",
+// "group:[email protected]",
+// "domain:google.com",
+// "serviceAccount:[email protected]"
+// ]
+// },
+// {
+// "role": "roles/resourcemanager.organizationViewer",
+// "members": [
+// "user:[email protected]"
+// ],
+// "condition": {
+// "title": "expirable access",
+// "description": "Does not grant access after Sep 2020",
+// "expression": "request.time <
+// timestamp('2020-10-01T00:00:00.000Z')",
+// }
+// }
+// ],
+// "etag": "BwWWja0YfJA=",
+// "version": 3
+// }
+// ```
+//
+// **YAML example:**
+//
+// ```
+// bindings:
+// - members:
+// - user:[email protected]
+// - group:[email protected]
+// - domain:google.com
+// - serviceAccount:[email protected]
+// role: roles/resourcemanager.organizationAdmin
+// - members:
+// - user:[email protected]
+// role: roles/resourcemanager.organizationViewer
+// condition:
+// title: expirable access
+// description: Does not grant access after Sep 2020
+// expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
+// etag: BwWWja0YfJA=
+// version: 3
+// ```
+//
+// For a description of IAM and its features, see the
+// [IAM documentation](https://cloud.google.com/iam/docs/).
+message Policy {
+ // Specifies the format of the policy.
+ //
+ // Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
+ // are rejected.
+ //
+ // Any operation that affects conditional role bindings must specify version
+ // `3`. This requirement applies to the following operations:
+ //
+ // * Getting a policy that includes a conditional role binding
+ // * Adding a conditional role binding to a policy
+ // * Changing a conditional role binding in a policy
+ // * Removing any role binding, with or without a condition, from a policy
+ // that includes conditions
+ //
+ // **Important:** If you use IAM Conditions, you must include the `etag`
field
+ // whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+ // you to overwrite a version `3` policy with a version `1` policy, and all
of
+ // the conditions in the version `3` policy are lost.
+ //
+ // If a policy does not include any conditions, operations on that policy may
+ // specify any valid version or leave the field unset.
+ //
+ // To learn which resources support conditions in their IAM policies, see the
+ // [IAM
+ //
documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+ int32 version = 1;
+
+ // Associates a list of `members`, or principals, with a `role`. Optionally,
+ // may specify a `condition` that determines how and when the `bindings` are
+ // applied. Each of the `bindings` must contain at least one principal.
+ //
+ // The `bindings` in a `Policy` can refer to up to 1,500 principals; up to
250
+ // of these principals can be Google groups. Each occurrence of a principal
+ // counts towards these limits. For example, if the `bindings` grant 50
+ // different roles to `user:[email protected]`, and not to any other
+ // principal, then you can add another 1,450 principals to the `bindings` in
+ // the `Policy`.
+ repeated Binding bindings = 4;
+
+ // Specifies cloud audit logging configuration for this policy.
+ repeated AuditConfig audit_configs = 6;
+
+ // `etag` is used for optimistic concurrency control as a way to help
+ // prevent simultaneous updates of a policy from overwriting each other.
+ // It is strongly suggested that systems make use of the `etag` in the
+ // read-modify-write cycle to perform policy updates in order to avoid race
+ // conditions: An `etag` is returned in the response to `getIamPolicy`, and
+ // systems are expected to put that etag in the request to `setIamPolicy` to
+ // ensure that their change will be applied to the same version of the
policy.
+ //
+ // **Important:** If you use IAM Conditions, you must include the `etag`
field
+ // whenever you call `setIamPolicy`. If you omit this field, then IAM allows
+ // you to overwrite a version `3` policy with a version `1` policy, and all
of
+ // the conditions in the version `3` policy are lost.
+ bytes etag = 3;
+}
+
+// Associates `members`, or principals, with a `role`.
+message Binding {
+ // Role that is assigned to the list of `members`, or principals.
+ // For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+ string role = 1;
+
+ // Specifies the principals requesting access for a Google Cloud resource.
+ // `members` can have the following values:
+ //
+ // * `allUsers`: A special identifier that represents anyone who is
+ // on the internet; with or without a Google account.
+ //
+ // * `allAuthenticatedUsers`: A special identifier that represents anyone
+ // who is authenticated with a Google account or a service account.
+ //
+ // * `user:{emailid}`: An email address that represents a specific Google
+ // account. For example, `[email protected]` .
+ //
+ //
+ // * `serviceAccount:{emailid}`: An email address that represents a service
+ // account. For example, `[email protected]`.
+ //
+ // * `group:{emailid}`: An email address that represents a Google group.
+ // For example, `[email protected]`.
+ //
+ // * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
+ // identifier) representing a user that has been recently deleted. For
+ // example, `[email protected]?uid=123456789012345678901`. If the user is
+ // recovered, this value reverts to `user:{emailid}` and the recovered
user
+ // retains the role in the binding.
+ //
+ // * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
(plus
+ // unique identifier) representing a service account that has been
recently
+ // deleted. For example,
+ // `[email protected]?uid=123456789012345678901`.
+ // If the service account is undeleted, this value reverts to
+ // `serviceAccount:{emailid}` and the undeleted service account retains
the
+ // role in the binding.
+ //
+ // * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
+ // identifier) representing a Google group that has been recently
+ // deleted. For example, `[email protected]?uid=123456789012345678901`.
If
+ // the group is recovered, this value reverts to `group:{emailid}` and the
+ // recovered group retains the role in the binding.
+ //
+ //
+ // * `domain:{domain}`: The G Suite domain (primary) that represents all the
+ // users of that domain. For example, `google.com` or `example.com`.
+ //
+ //
+ repeated string members = 2;
+
+ // The condition that is associated with this binding.
+ //
+ // If the condition evaluates to `true`, then this binding applies to the
+ // current request.
+ //
+ // If the condition evaluates to `false`, then this binding does not apply to
+ // the current request. However, a different role binding might grant the
same
+ // role to one or more of the principals in this binding.
+ //
+ // To learn which resources support conditions in their IAM policies, see the
+ // [IAM
+ //
documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+ google.type.Expr condition = 3;
+}
+
+// Specifies the audit configuration for a service.
+// The configuration determines which permission types are logged, and what
+// identities, if any, are exempted from logging.
+// An AuditConfig must have one or more AuditLogConfigs.
+//
+// If there are AuditConfigs for both `allServices` and a specific service,
+// the union of the two AuditConfigs is used for that service: the log_types
+// specified in each AuditConfig are enabled, and the exempted_members in each
+// AuditLogConfig are exempted.
+//
+// Example Policy with multiple AuditConfigs:
+//
+// {
+// "audit_configs": [
+// {
+// "service": "allServices",
+// "audit_log_configs": [
+// {
+// "log_type": "DATA_READ",
+// "exempted_members": [
+// "user:[email protected]"
+// ]
+// },
+// {
+// "log_type": "DATA_WRITE"
+// },
+// {
+// "log_type": "ADMIN_READ"
+// }
+// ]
+// },
+// {
+// "service": "sampleservice.googleapis.com",
+// "audit_log_configs": [
+// {
+// "log_type": "DATA_READ"
+// },
+// {
+// "log_type": "DATA_WRITE",
+// "exempted_members": [
+// "user:[email protected]"
+// ]
+// }
+// ]
+// }
+// ]
+// }
+//
+// For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+// logging. It also exempts `[email protected]` from DATA_READ logging, and
+// `[email protected]` from DATA_WRITE logging.
+message AuditConfig {
+ // Specifies a service that will be enabled for audit logging.
+ // For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
+ // `allServices` is a special value that covers all services.
+ string service = 1;
+
+ // The configuration for logging of each type of permission.
+ repeated AuditLogConfig audit_log_configs = 3;
+}
+
+// Provides the configuration for logging a type of permissions.
+// Example:
+//
+// {
+// "audit_log_configs": [
+// {
+// "log_type": "DATA_READ",
+// "exempted_members": [
+// "user:[email protected]"
+// ]
+// },
+// {
+// "log_type": "DATA_WRITE"
+// }
+// ]
+// }
+//
+// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+// [email protected] from DATA_READ logging.
+message AuditLogConfig {
+ // The list of valid permission types for which logging can be configured.
+ // Admin writes are always logged, and are not configurable.
+ enum LogType {
+ // Default case. Should never be this.
+ LOG_TYPE_UNSPECIFIED = 0;
+
+ // Admin reads. Example: CloudIAM getIamPolicy
+ ADMIN_READ = 1;
+
+ // Data writes. Example: CloudSQL Users create
+ DATA_WRITE = 2;
+
+ // Data reads. Example: CloudSQL Users list
+ DATA_READ = 3;
+ }
+
+ // The log type that this config enables.
+ LogType log_type = 1;
+
+ // Specifies the identities that do not cause logging for this type of
+ // permission.
+ // Follows the same format of
+ // [Binding.members][google.iam.v1.Binding.members].
+ repeated string exempted_members = 2;
+}
+
+// The difference delta between two policies.
+message PolicyDelta {
+ // The delta for Bindings between two policies.
+ repeated BindingDelta binding_deltas = 1;
+
+ // The delta for AuditConfigs between two policies.
+ repeated AuditConfigDelta audit_config_deltas = 2;
+}
+
+// One delta entry for Binding. Each individual change (only one member in each
+// entry) to a binding will be a separate entry.
+message BindingDelta {
+ // The type of action performed on a Binding in a policy.
+ enum Action {
+ // Unspecified.
+ ACTION_UNSPECIFIED = 0;
+
+ // Addition of a Binding.
+ ADD = 1;
+
+ // Removal of a Binding.
+ REMOVE = 2;
+ }
+
+ // The action that was performed on a Binding.
+ // Required
+ Action action = 1;
+
+ // Role that is assigned to `members`.
+ // For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+ // Required
+ string role = 2;
+
+ // A single identity requesting access for a Google Cloud resource.
+ // Follows the same format of Binding.members.
+ // Required
+ string member = 3;
+
+ // The condition that is associated with this binding.
+ google.type.Expr condition = 4;
+}
+
+// One delta entry for AuditConfig. Each individual change (only one
+// exempted_member in each entry) to a AuditConfig will be a separate entry.
+message AuditConfigDelta {
+ // The type of action performed on an audit configuration in a policy.
+ enum Action {
+ // Unspecified.
+ ACTION_UNSPECIFIED = 0;
+
+ // Addition of an audit configuration.
+ ADD = 1;
+
+ // Removal of an audit configuration.
+ REMOVE = 2;
+ }
+
+ // The action that was performed on an audit configuration in a policy.
+ // Required
+ Action action = 1;
+
+ // Specifies a service that was configured for Cloud Audit Logging.
+ // For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
+ // `allServices` is a special value that covers all services.
+ // Required
+ string service = 2;
+
+ // A single identity that is exempted from "data access" audit
+ // logging for the `service` specified above.
+ // Follows the same format of Binding.members.
+ string exempted_member = 3;
+
+ // Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always
+ // enabled, and cannot be configured.
+ // Required
+ string log_type = 4;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/policy_pb2.py
new/grpc_google_iam_v1-0.14.3/google/iam/v1/policy_pb2.py
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/policy_pb2.py 2025-03-17
12:21:09.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/policy_pb2.py 2025-10-15
23:09:49.000000000 +0200
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: google/iam/v1/policy.proto
+# Protobuf Python Version: 4.25.3
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
@@ -39,8 +40,10 @@
DESCRIPTOR, "google.iam.v1.policy_pb2", _globals
)
if _descriptor._USE_C_DESCRIPTORS == False:
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options =
b"\n\021com.google.iam.v1B\013PolicyProtoP\001Z)cloud.google.com/go/iam/apiv1/iampb;iampb\370\001\001\252\002\023Google.Cloud.Iam.V1\312\002\023Google\\Cloud\\Iam\\V1"
+ _globals["DESCRIPTOR"]._options = None
+ _globals[
+ "DESCRIPTOR"
+ ]._serialized_options =
b"\n\021com.google.iam.v1B\013PolicyProtoP\001Z)cloud.google.com/go/iam/apiv1/iampb;iampb\370\001\001\252\002\023Google.Cloud.Iam.V1\312\002\023Google\\Cloud\\Iam\\V1"
_globals["_POLICY"]._serialized_start = 70
_globals["_POLICY"]._serialized_end = 202
_globals["_BINDING"]._serialized_start = 204
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/policy_pb2.pyi
new/grpc_google_iam_v1-0.14.3/google/iam/v1/policy_pb2.pyi
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/policy_pb2.pyi 1970-01-01
01:00:00.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/policy_pb2.pyi 2025-10-15
23:09:47.000000000 +0200
@@ -0,0 +1,163 @@
+# Copyright 2025 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from typing import ClassVar as _ClassVar
+from typing import Iterable as _Iterable
+from typing import Mapping as _Mapping
+from typing import Optional as _Optional
+from typing import Union as _Union
+
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf.internal import containers as _containers
+from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
+from google.type import expr_pb2 as _expr_pb2
+
+DESCRIPTOR: _descriptor.FileDescriptor
+
+class Policy(_message.Message):
+ __slots__ = ("version", "bindings", "audit_configs", "etag")
+ VERSION_FIELD_NUMBER: _ClassVar[int]
+ BINDINGS_FIELD_NUMBER: _ClassVar[int]
+ AUDIT_CONFIGS_FIELD_NUMBER: _ClassVar[int]
+ ETAG_FIELD_NUMBER: _ClassVar[int]
+ version: int
+ bindings: _containers.RepeatedCompositeFieldContainer[Binding]
+ audit_configs: _containers.RepeatedCompositeFieldContainer[AuditConfig]
+ etag: bytes
+ def __init__(
+ self,
+ version: _Optional[int] = ...,
+ bindings: _Optional[_Iterable[_Union[Binding, _Mapping]]] = ...,
+ audit_configs: _Optional[_Iterable[_Union[AuditConfig, _Mapping]]] =
...,
+ etag: _Optional[bytes] = ...,
+ ) -> None: ...
+
+class Binding(_message.Message):
+ __slots__ = ("role", "members", "condition")
+ ROLE_FIELD_NUMBER: _ClassVar[int]
+ MEMBERS_FIELD_NUMBER: _ClassVar[int]
+ CONDITION_FIELD_NUMBER: _ClassVar[int]
+ role: str
+ members: _containers.RepeatedScalarFieldContainer[str]
+ condition: _expr_pb2.Expr
+ def __init__(
+ self,
+ role: _Optional[str] = ...,
+ members: _Optional[_Iterable[str]] = ...,
+ condition: _Optional[_Union[_expr_pb2.Expr, _Mapping]] = ...,
+ ) -> None: ...
+
+class AuditConfig(_message.Message):
+ __slots__ = ("service", "audit_log_configs")
+ SERVICE_FIELD_NUMBER: _ClassVar[int]
+ AUDIT_LOG_CONFIGS_FIELD_NUMBER: _ClassVar[int]
+ service: str
+ audit_log_configs:
_containers.RepeatedCompositeFieldContainer[AuditLogConfig]
+ def __init__(
+ self,
+ service: _Optional[str] = ...,
+ audit_log_configs: _Optional[_Iterable[_Union[AuditLogConfig,
_Mapping]]] = ...,
+ ) -> None: ...
+
+class AuditLogConfig(_message.Message):
+ __slots__ = ("log_type", "exempted_members")
+
+ class LogType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ LOG_TYPE_UNSPECIFIED: _ClassVar[AuditLogConfig.LogType]
+ ADMIN_READ: _ClassVar[AuditLogConfig.LogType]
+ DATA_WRITE: _ClassVar[AuditLogConfig.LogType]
+ DATA_READ: _ClassVar[AuditLogConfig.LogType]
+ LOG_TYPE_UNSPECIFIED: AuditLogConfig.LogType
+ ADMIN_READ: AuditLogConfig.LogType
+ DATA_WRITE: AuditLogConfig.LogType
+ DATA_READ: AuditLogConfig.LogType
+ LOG_TYPE_FIELD_NUMBER: _ClassVar[int]
+ EXEMPTED_MEMBERS_FIELD_NUMBER: _ClassVar[int]
+ log_type: AuditLogConfig.LogType
+ exempted_members: _containers.RepeatedScalarFieldContainer[str]
+ def __init__(
+ self,
+ log_type: _Optional[_Union[AuditLogConfig.LogType, str]] = ...,
+ exempted_members: _Optional[_Iterable[str]] = ...,
+ ) -> None: ...
+
+class PolicyDelta(_message.Message):
+ __slots__ = ("binding_deltas", "audit_config_deltas")
+ BINDING_DELTAS_FIELD_NUMBER: _ClassVar[int]
+ AUDIT_CONFIG_DELTAS_FIELD_NUMBER: _ClassVar[int]
+ binding_deltas: _containers.RepeatedCompositeFieldContainer[BindingDelta]
+ audit_config_deltas:
_containers.RepeatedCompositeFieldContainer[AuditConfigDelta]
+ def __init__(
+ self,
+ binding_deltas: _Optional[_Iterable[_Union[BindingDelta, _Mapping]]] =
...,
+ audit_config_deltas: _Optional[
+ _Iterable[_Union[AuditConfigDelta, _Mapping]]
+ ] = ...,
+ ) -> None: ...
+
+class BindingDelta(_message.Message):
+ __slots__ = ("action", "role", "member", "condition")
+
+ class Action(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ ACTION_UNSPECIFIED: _ClassVar[BindingDelta.Action]
+ ADD: _ClassVar[BindingDelta.Action]
+ REMOVE: _ClassVar[BindingDelta.Action]
+ ACTION_UNSPECIFIED: BindingDelta.Action
+ ADD: BindingDelta.Action
+ REMOVE: BindingDelta.Action
+ ACTION_FIELD_NUMBER: _ClassVar[int]
+ ROLE_FIELD_NUMBER: _ClassVar[int]
+ MEMBER_FIELD_NUMBER: _ClassVar[int]
+ CONDITION_FIELD_NUMBER: _ClassVar[int]
+ action: BindingDelta.Action
+ role: str
+ member: str
+ condition: _expr_pb2.Expr
+ def __init__(
+ self,
+ action: _Optional[_Union[BindingDelta.Action, str]] = ...,
+ role: _Optional[str] = ...,
+ member: _Optional[str] = ...,
+ condition: _Optional[_Union[_expr_pb2.Expr, _Mapping]] = ...,
+ ) -> None: ...
+
+class AuditConfigDelta(_message.Message):
+ __slots__ = ("action", "service", "exempted_member", "log_type")
+
+ class Action(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
+ __slots__ = ()
+ ACTION_UNSPECIFIED: _ClassVar[AuditConfigDelta.Action]
+ ADD: _ClassVar[AuditConfigDelta.Action]
+ REMOVE: _ClassVar[AuditConfigDelta.Action]
+ ACTION_UNSPECIFIED: AuditConfigDelta.Action
+ ADD: AuditConfigDelta.Action
+ REMOVE: AuditConfigDelta.Action
+ ACTION_FIELD_NUMBER: _ClassVar[int]
+ SERVICE_FIELD_NUMBER: _ClassVar[int]
+ EXEMPTED_MEMBER_FIELD_NUMBER: _ClassVar[int]
+ LOG_TYPE_FIELD_NUMBER: _ClassVar[int]
+ action: AuditConfigDelta.Action
+ service: str
+ exempted_member: str
+ log_type: str
+ def __init__(
+ self,
+ action: _Optional[_Union[AuditConfigDelta.Action, str]] = ...,
+ service: _Optional[str] = ...,
+ exempted_member: _Optional[str] = ...,
+ log_type: _Optional[str] = ...,
+ ) -> None: ...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/resource_policy_member.proto
new/grpc_google_iam_v1-0.14.3/google/iam/v1/resource_policy_member.proto
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/resource_policy_member.proto
1970-01-01 01:00:00.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/resource_policy_member.proto
2025-10-15 23:09:49.000000000 +0200
@@ -0,0 +1,50 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.iam.v1;
+
+import "google/api/field_behavior.proto";
+
+option csharp_namespace = "Google.Cloud.Iam.V1";
+option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb";
+option php_namespace = "Google\\Cloud\\Iam\\V1";
+option java_multiple_files = true;
+option java_outer_classname = "ResourcePolicyMemberProto";
+option java_package = "com.google.iam.v1";
+
+// Output-only policy member strings of a Google Cloud resource's built-in
+// identity.
+message ResourcePolicyMember {
+ // IAM policy binding member referring to a Google Cloud resource by
+ // user-assigned name (https://google.aip.dev/122). If a resource is deleted
+ // and recreated with the same name, the binding will be applicable to the
new
+ // resource.
+ //
+ // Example:
+ //
`principal://parametermanager.googleapis.com/projects/12345/name/locations/us-central1-a/parameters/my-parameter`
+ string iam_policy_name_principal = 1
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // IAM policy binding member referring to a Google Cloud resource by
+ // system-assigned unique identifier (https://google.aip.dev/148#uid). If a
+ // resource is deleted and recreated with the same name, the binding will not
+ // be applicable to the new resource
+ //
+ // Example:
+ //
`principal://parametermanager.googleapis.com/projects/12345/uid/locations/us-central1-a/parameters/a918fed5`
+ string iam_policy_uid_principal = 2
+ [(google.api.field_behavior) = OUTPUT_ONLY];
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/resource_policy_member_pb2.py
new/grpc_google_iam_v1-0.14.3/google/iam/v1/resource_policy_member_pb2.py
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/resource_policy_member_pb2.py
2025-03-17 12:21:09.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/resource_policy_member_pb2.py
2025-10-15 23:09:47.000000000 +0200
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: google/iam/v1/resource_policy_member.proto
+# Protobuf Python Version: 4.25.3
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
@@ -39,14 +40,20 @@
DESCRIPTOR, "google.iam.v1.resource_policy_member_pb2", _globals
)
if _descriptor._USE_C_DESCRIPTORS == False:
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options =
b"\n\021com.google.iam.v1B\031ResourcePolicyMemberProtoP\001Z)cloud.google.com/go/iam/apiv1/iampb;iampb\252\002\023Google.Cloud.Iam.V1\312\002\023Google\\Cloud\\Iam\\V1"
- _RESOURCEPOLICYMEMBER.fields_by_name["iam_policy_name_principal"]._options
= None
- _RESOURCEPOLICYMEMBER.fields_by_name[
+ _globals["DESCRIPTOR"]._options = None
+ _globals[
+ "DESCRIPTOR"
+ ]._serialized_options =
b"\n\021com.google.iam.v1B\031ResourcePolicyMemberProtoP\001Z)cloud.google.com/go/iam/apiv1/iampb;iampb\252\002\023Google.Cloud.Iam.V1\312\002\023Google\\Cloud\\Iam\\V1"
+ _globals["_RESOURCEPOLICYMEMBER"].fields_by_name[
+ "iam_policy_name_principal"
+ ]._options = None
+ _globals["_RESOURCEPOLICYMEMBER"].fields_by_name[
"iam_policy_name_principal"
]._serialized_options = b"\340A\003"
- _RESOURCEPOLICYMEMBER.fields_by_name["iam_policy_uid_principal"]._options
= None
- _RESOURCEPOLICYMEMBER.fields_by_name[
+ _globals["_RESOURCEPOLICYMEMBER"].fields_by_name[
+ "iam_policy_uid_principal"
+ ]._options = None
+ _globals["_RESOURCEPOLICYMEMBER"].fields_by_name[
"iam_policy_uid_principal"
]._serialized_options = b"\340A\003"
_globals["_RESOURCEPOLICYMEMBER"]._serialized_start = 94
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/google/iam/v1/resource_policy_member_pb2.pyi
new/grpc_google_iam_v1-0.14.3/google/iam/v1/resource_policy_member_pb2.pyi
--- old/grpc_google_iam_v1-0.14.2/google/iam/v1/resource_policy_member_pb2.pyi
1970-01-01 01:00:00.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/google/iam/v1/resource_policy_member_pb2.pyi
2025-10-15 23:09:48.000000000 +0200
@@ -0,0 +1,34 @@
+# Copyright 2025 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from typing import ClassVar as _ClassVar
+from typing import Optional as _Optional
+
+from google.api import field_behavior_pb2 as _field_behavior_pb2
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+
+DESCRIPTOR: _descriptor.FileDescriptor
+
+class ResourcePolicyMember(_message.Message):
+ __slots__ = ("iam_policy_name_principal", "iam_policy_uid_principal")
+ IAM_POLICY_NAME_PRINCIPAL_FIELD_NUMBER: _ClassVar[int]
+ IAM_POLICY_UID_PRINCIPAL_FIELD_NUMBER: _ClassVar[int]
+ iam_policy_name_principal: str
+ iam_policy_uid_principal: str
+ def __init__(
+ self,
+ iam_policy_name_principal: _Optional[str] = ...,
+ iam_policy_uid_principal: _Optional[str] = ...,
+ ) -> None: ...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/grpc_google_iam_v1.egg-info/PKG-INFO
new/grpc_google_iam_v1-0.14.3/grpc_google_iam_v1.egg-info/PKG-INFO
--- old/grpc_google_iam_v1-0.14.2/grpc_google_iam_v1.egg-info/PKG-INFO
2025-03-17 12:40:21.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/grpc_google_iam_v1.egg-info/PKG-INFO
2025-10-15 23:10:19.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: grpc-google-iam-v1
-Version: 0.14.2
+Version: 0.14.3
Summary: IAM API client library
Author-email: Google LLC <[email protected]>
License: Apache 2.0
@@ -17,6 +17,7 @@
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet
Requires-Python: >=3.7
@@ -25,6 +26,7 @@
Requires-Dist: grpcio<2.0.0,>=1.44.0
Requires-Dist: googleapis-common-protos[grpc]<2.0.0,>=1.56.0
Requires-Dist:
protobuf!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0,>=3.20.2
+Dynamic: license-file
Python Client for Cloud Identity and Access Management
======================================================
@@ -190,7 +192,7 @@
import logging
- from google.cloud.translate_v3 import translate
+ from google.cloud import library_v1
base_logger = logging.getLogger("google")
base_logger.addHandler(logging.StreamHandler())
@@ -202,7 +204,7 @@
import logging
- from google.cloud.translate_v3 import translate
+ from google.cloud import library_v1
base_logger = logging.getLogger("google.cloud.library_v1")
base_logger.addHandler(logging.StreamHandler())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/grpc_google_iam_v1-0.14.2/grpc_google_iam_v1.egg-info/SOURCES.txt
new/grpc_google_iam_v1-0.14.3/grpc_google_iam_v1.egg-info/SOURCES.txt
--- old/grpc_google_iam_v1-0.14.2/grpc_google_iam_v1.egg-info/SOURCES.txt
2025-03-17 12:40:21.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/grpc_google_iam_v1.egg-info/SOURCES.txt
2025-10-15 23:10:19.000000000 +0200
@@ -4,13 +4,21 @@
pyproject.toml
setup.py
google/iam/v1/__init__.py
+google/iam/v1/iam_policy.proto
google/iam/v1/iam_policy_pb2.py
+google/iam/v1/iam_policy_pb2.pyi
google/iam/v1/iam_policy_pb2_grpc.py
+google/iam/v1/options.proto
google/iam/v1/options_pb2.py
+google/iam/v1/options_pb2.pyi
google/iam/v1/options_pb2_grpc.py
+google/iam/v1/policy.proto
google/iam/v1/policy_pb2.py
+google/iam/v1/policy_pb2.pyi
google/iam/v1/policy_pb2_grpc.py
+google/iam/v1/resource_policy_member.proto
google/iam/v1/resource_policy_member_pb2.py
+google/iam/v1/resource_policy_member_pb2.pyi
google/iam/v1/logging/__init__.py
google/iam/v1/logging/audit_data_pb2.py
grpc_google_iam_v1.egg-info/PKG-INFO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/grpc_google_iam_v1-0.14.2/pyproject.toml
new/grpc_google_iam_v1-0.14.3/pyproject.toml
--- old/grpc_google_iam_v1-0.14.2/pyproject.toml 2025-03-17
12:21:09.000000000 +0100
+++ new/grpc_google_iam_v1-0.14.3/pyproject.toml 2025-10-15
23:09:47.000000000 +0200
@@ -18,7 +18,7 @@
[project]
name = "grpc-google-iam-v1"
-version = "0.14.2"
+version = "0.14.3"
authors = [{ name = "Google LLC", email = "[email protected]" }]
license = { text = "Apache 2.0" }
requires-python = ">=3.7"
@@ -37,6 +37,7 @@
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: OS Independent",
"Topic :: Internet",
]