From 229b2c9ec97964b0c1ed5dcc4b2e0d401294c241 Mon Sep 17 00:00:00 2001 From: ohmayr Date: Tue, 5 May 2026 16:31:17 +0000 Subject: [PATCH 1/2] fix: pass resource aliases to file-level CommonResources --- packages/gapic-generator/gapic/schema/api.py | 4 +++- packages/gapic-generator/gapic/schema/wrappers.py | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/gapic-generator/gapic/schema/api.py b/packages/gapic-generator/gapic/schema/api.py index d86d4d29ea9a..7d982eef3aaa 100644 --- a/packages/gapic-generator/gapic/schema/api.py +++ b/packages/gapic-generator/gapic/schema/api.py @@ -101,6 +101,7 @@ class Proto: meta: metadata.Metadata = dataclasses.field( default_factory=metadata.Metadata, ) + resource_name_aliases: Mapping[str, str] = dataclasses.field(default_factory=dict) def __getattr__(self, name: str): return getattr(self.file_pb2, name) @@ -159,7 +160,7 @@ def messages(self) -> Mapping[str, wrappers.MessageType]: def resource_messages(self) -> Mapping[str, wrappers.MessageType]: """Return the file level resources of the proto.""" file_resource_messages = ( - (res.type, wrappers.CommonResource.build(res).message_type) + (res.type, wrappers.CommonResource.build(res, aliases=self.resource_name_aliases).message_type) for res in self.file_pb2.options.Extensions[ resource_pb2.resource_definition ] @@ -1214,6 +1215,7 @@ def proto(self) -> Proto: meta=metadata.Metadata( address=self.address, ), + resource_name_aliases=self.opts.resource_name_aliases, ) # If this is not a file being generated, we do not need to diff --git a/packages/gapic-generator/gapic/schema/wrappers.py b/packages/gapic-generator/gapic/schema/wrappers.py index e8d3378fb992..0b427b00ae1f 100644 --- a/packages/gapic-generator/gapic/schema/wrappers.py +++ b/packages/gapic-generator/gapic/schema/wrappers.py @@ -2081,10 +2081,11 @@ def with_internal_methods(self, *, public_methods: Set[str]) -> "Method": class CommonResource: type_name: str pattern: str + resource_name_aliases: Mapping[str, str] = dataclasses.field(default_factory=dict) @classmethod - def build(cls, resource: resource_pb2.ResourceDescriptor): - return cls(type_name=resource.type, pattern=next(iter(resource.pattern))) + def build(cls, resource: resource_pb2.ResourceDescriptor, aliases: Optional[Mapping[str, str]] = None): + return cls(type_name=resource.type, pattern=next(iter(resource.pattern)), resource_name_aliases=aliases or {}) @utils.cached_property def message_type(self): @@ -2098,6 +2099,7 @@ def message_type(self): fields={}, nested_enums={}, nested_messages={}, + resource_name_aliases=self.resource_name_aliases, ) @@ -2343,6 +2345,7 @@ def gen_indirect_resources_used(message): f"To protect backward compatibility, explicitly alias one of these using " f"the `--resource-name-alias` CLI parameter.\n" f"Example: --resource-name-alias={msg.resource_type_full_path}:CustomName\n" + f"{seen_types}" ) seen_types[res_type] = msg From b132e78d5ccfc42f23dea321b414d4ebaf8678ac Mon Sep 17 00:00:00 2001 From: ohmayr Date: Tue, 5 May 2026 16:40:25 +0000 Subject: [PATCH 2/2] remove debug statement --- packages/gapic-generator/gapic/schema/wrappers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/gapic-generator/gapic/schema/wrappers.py b/packages/gapic-generator/gapic/schema/wrappers.py index 0b427b00ae1f..13fd99729320 100644 --- a/packages/gapic-generator/gapic/schema/wrappers.py +++ b/packages/gapic-generator/gapic/schema/wrappers.py @@ -2345,7 +2345,6 @@ def gen_indirect_resources_used(message): f"To protect backward compatibility, explicitly alias one of these using " f"the `--resource-name-alias` CLI parameter.\n" f"Example: --resource-name-alias={msg.resource_type_full_path}:CustomName\n" - f"{seen_types}" ) seen_types[res_type] = msg