Skip to content

Latest commit

 

History

History
659 lines (540 loc) · 48.4 KB

File metadata and controls

659 lines (540 loc) · 48.4 KB

librarian.yaml Schema

This document describes the schema for the librarian.yaml.

Root Configuration

Field Type Description
language string Is the language for this workspace (go, python, rust).
version string Is the librarian tool version to use.
repo string Is the repository name, such as "googleapis/google-cloud-python". It is used for:
- Providing to the Java GAPIC generator for observability features.
- Generating the .repo-metadata.json.
sources Sources (optional) References external source repositories.
tools Tools (optional) Defines required tools.
default Default (optional) Contains default settings for all libraries. They apply to all libraries unless overridden.
libraries list of Library (optional) Contains configuration overrides for libraries that need special handling, and differ from default settings.

Sources Configuration

Field Type Description
conformance Source (optional) Is the path to the conformance-tests repository, used as include directory for protoc.
discovery Source (optional) Is the discovery-artifact-manager repository configuration.
googleapis Source (optional) Is the googleapis repository configuration.
protobuf Source (optional) Is the path to the protobuf repository, used as include directory for protoc.
showcase Source (optional) Is the showcase repository configuration.

Source Configuration

Field Type Description
commit string Is the git commit hash or tag to use.
dir string Is a local directory path to use instead of fetching. If set, Commit and SHA256 are ignored.
sha256 string Is the expected hash of the tarball for this commit.
subpath string Is a directory inside the fetched archive that should be treated as the root for operations.

Tools Configuration

Field Type Description
cargo list of CargoTool (optional) Defines tools to install via cargo.
composer list of ComposerTool (optional) Defines tools to install via Composer.
go list of GoTool (optional) Defines tools to install via go.
gem list of GemTool (optional) Defines tools to install via gem.
maven list of MavenTool (optional) Defines tools to install via Maven.
pip list of PipTool (optional) Defines tools to install via pip.
pnpm list of PNPMTool (optional) Defines tools to install via pnpm.
protoc Protoc (optional) Defines the protoc installation.

CargoTool Configuration

Field Type Description
name string Is the cargo package name.
version string Is the version to install.

ComposerTool Configuration

Field Type Description
name string Is the composer package name.
version string Is the version to install.
repo string Is the GitHub repository to fetch the tool from (e.g. github.com/googleapis/gapic-generator-php).
sha256 string Is the SHA256 checksum of the package.
local_path string Is the path to a local composer project. When present, Version, Repo, and SHA256 are ignored.
entrypoint string Is the path to the main script to execute. If set, an executable wrapper is generated for this tool.

GemTool Configuration

Field Type Description
name string Is the gem name.
version string Is the version to install.

GoTool Configuration

Field Type Description
name string Is the go module name.
version string Is the version to install.

MavenTool Configuration

Field Type Description
name string Is the Maven tool name. It is used as the filename for the generated executable wrapper script.
version string Is the version to install.
group_id string Is the Maven artifact group ID.
artifact_id string Is the Maven artifact ID.
classifier string Is the classifier of the Maven artifact.
packaging string Is the Maven packaging. Acceptable values are lowercase "jar" and "exe". If the packaging is "exe", the wrapper script executes it directly. Otherwise, it executes the tool using "java -jar".
local_path string Is the path to a local Maven project directory containing a pom.xml file. When present, version, group_id, artifact_id are ignored.
main_class string Is the fully qualified main class name to execute (used with -cp).

PipTool Configuration

Field Type Description
name string Is the pip package name.
version string Is the version to install.
package string Is the pip install specifier (e.g., "pkg@git+https://...").
local_path string Is the path to a local Python package to install.

PNPMTool Configuration

Field Type Description
name string Is the pnpm package name.
version string Is the version to install.
package string Is the URL or path of the package to install.
sha256 string Is the SHA256 checksum of the package.
checksum string Is a deprecated alias for SHA256.
build list of string Defines the commands to run to build the tool after installation.
src_dir string Is the path to the directory inside the fetched archive that should be treated as the root for operations.

Protoc Configuration

Field Type Description
version string Is the version to install.
sha256 string Is the SHA256 checksum of the tarball.

Default Configuration

Field Type Description
keep list of string Lists files and directories to preserve during regeneration. These represent critical custom handwritten files (e.g., package.json, custom configs, and handwritten tests) and semi-handmade documentation files (README.md, CHANGELOG.md, .readme-partials.yaml) that are not natively generated from proto schemas but are strictly required by the post-processor's markdown generation and release tracking passes.
output string Is the directory where code is written. For example, for Rust this is src/generated.
tag_format string Is the template for git tags, such as "{name}/v{version}".
dart DartPackage (optional) Contains Dart-specific default configuration.
dotnet DotnetPackage (optional) Contains .NET-specific default configuration.
go GoDefault (optional) Contains Go-specific default configuration.
java JavaDefault (optional) Contains Java-specific default configuration.
nodejs NodejsPackage (optional) Contains Node.js-specific default configuration.
php PHPDefault (optional) Contains PHP-specific default configuration.
rust RustDefault (optional) Contains Rust-specific default configuration.
python PythonDefault (optional) Contains Python-specific default configuration.
swift SwiftDefault (optional) Contains Swift-specific default configuration.

Library Configuration

Field Type Description
name string Is the library name, such as "secretmanager" or "storage".
version string Is the library version.
preview Library (optional) Signifies that this API has a preview variant, and it contains overrides specific to the preview API variant. This is merged with the containing [Library], preferring those [Library.Preview] values that are set over their counterpart in the containing configuration.

The most common overrides are [Library.Version] and [Library.APIs], with the former containing a pre-release version based on the containing version of the stable client, and the latter being a subset of APIs, typically omitting alpha and beta paths.

The [Library.Output] may be a different location and derived on a per-language basis, but will not be serialized in the configuration.

Important: The boolean fields [Library.SkipRelease] and [Library.SkipGenerate] set in the containing config will always be applied to the Preview library as well, because previews are related to the stable library and should be managed identically.
apis list of API (optional) API specifies which googleapis API to generate from (for generated libraries).
copyright_year string Is the copyright year for the library.
title_override string Overrides the title used in README generation.
keep list of string Lists files and directories to preserve during regeneration. These represent critical custom handwritten files (e.g., package.json, custom configs, and handwritten tests) and semi-handmade documentation files (README.md, CHANGELOG.md, .readme-partials.yaml) that are not natively generated from proto schemas but are strictly required by the post-processor's markdown generation and release tracking passes.
output string Is the directory where code is written. This overrides Default.Output.
postprocess Postprocess (optional) Contains post-processing operations executed after code generation.
roots list of string Specifies the source roots to use for generation. Defaults to googleapis.
skip_generate bool Disables code generation for this library.
skip_release bool Disables release for this library.
specification_format string Specifies the API specification format. Valid values are "protobuf" (default) or "discovery".
dart DartPackage (optional) Contains Dart-specific library configuration.
dotnet DotnetPackage (optional) Contains .NET-specific library configuration.
go GoModule (optional) Contains Go-specific library configuration.
java JavaModule (optional) Contains Java-specific library configuration.
nodejs NodejsPackage (optional) Contains Node.js-specific library configuration.
php PHPPackage (optional) Contains PHP-specific library configuration.
python PythonPackage (optional) Contains Python-specific library configuration.
ruby RubyPackage (optional) Contains Ruby-specific library configuration.
rust RustCrate (optional) Contains Rust-specific library configuration.
swift SwiftPackage (optional) Contains Swift-specific library configuration.

Postprocess Configuration

Field Type Description
replace list of ReplaceConfig Contains literal string replacement rules.
replace_regex list of ReplaceRegexConfig Contains regular expression replacement rules.
copy_file list of CopyConfig Contains file copy rules.
remove_file list of string Contains glob patterns of files to remove.
method_operations list of MethodOperation Contains method-level operations (delete, duplicate, deprecate).

MethodOperation Configuration

Field Type Description
path string Specifies the relative file path to modify.
action string Specifies the operation (delete, duplicate, or deprecate).
func_name string Specifies the target method name.
new_name string Specifies the new method name for duplicate operations.
deprecation_message string Specifies the deprecation message for deprecate operations.

ReplaceConfig Configuration

Field Type Description
path string Specifies the relative file path or glob pattern to modify.
original string Specifies the exact string to find.
replacement string Specifies the replacement string.

ReplaceRegexConfig Configuration

Field Type Description
path string Specifies the relative file path or glob pattern to modify.
pattern string Specifies the regular expression pattern to find.
replacement string Specifies the replacement string.

CopyConfig Configuration

Field Type Description
src string Specifies the source file path relative to the staging directory.
dst string Specifies the destination file path relative to the library root.

API Configuration

Field Type Description
path string Specifies which googleapis Path to generate from (for generated libraries).
go GoAPI (optional) Contains Go-specific API configuration.
java JavaAPI (optional) Contains Java-specific API configuration.
nodejs NodejsAPI (optional) Contains Node.js-specific API configuration.
php PHPAPI (optional) Contains PHP-specific API configuration.
ruby RubyAPI (optional) Contains Ruby-specific API configuration.

GoDefault Configuration

Field Type Description
toolchain string Is the desired Go toolchain version (e.g., "go1.25.0").
default_enabled_generator_features list of string Lists the generator features enabled by default for all APIs. These default features are appended AFTER any features explicitly declared in individual APIs.

AdditionalProto Configuration

Field Type Description
path string Is the path to the proto file, relative to the googleapis root.
generate_proto_classes bool Indicates whether to include this proto in standard Protocol Buffer Java classes generation.
copy_to_output bool Indicates whether to copy this proto to the output directory.

CommonDiscovery Configuration

Field Type Description
operation_id string Is the ID of the LRO operation type (e.g., ".google.cloud.compute.v1.Operation").
pollers list of CommonPoller Is a list of LRO polling configurations.

CommonPoller Configuration

Field Type Description
prefix string Is an acceptable prefix for the URL path (e.g., "compute/v1/projects/{project}/zones/{zone}").
method_id string Is the corresponding method ID (e.g., ".google.cloud.compute.v1.zoneOperations.get").

DartPackage Configuration

Field Type Description
api_keys_environment_variables string Is a comma-separated list of environment variable names that can contain API keys (e.g., "GOOGLE_API_KEY,GEMINI_API_KEY").
dependencies string Is a comma-separated list of dependencies.
dev_dependencies string Is a comma-separated list of development dependencies.
extra_imports string Is additional imports to include in the generated library.
include_list list of string Is a list of proto files to include (e.g., "date.proto", "expr.proto").
issue_tracker_url string Is the URL for the issue tracker.
library_path_override string Overrides the library path.
name_override string Overrides the package name
packages map[string]string Maps Dart package names to version constraints. Keys are in the format "package:googleapis_auth" and values are version strings like "^2.0.0". These are merged with default settings, with library settings taking precedence.
part_file string Is the path to a part file to include in the generated library.
prefixes map[string]string Maps protobuf package names to Dart import prefixes. Keys are in the format "prefix:google.protobuf" and values are the prefix names. These are merged with default settings, with library settings taking precedence.
protos map[string]string Maps protobuf package names to Dart import paths. Keys are in the format "proto:google.api" and values are import paths like "package:google_cloud_api/api.dart". These are merged with default settings, with library settings taking precedence.
readme_after_title_text string Is text to insert in the README after the title.
readme_quickstart_text string Is text to use for the quickstart section in the README.
repository_url string Is the URL to the repository for this package.
supports_sse bool Indicates whether the target API supports Server-Sent Events (SSE) for methods where ServerSideStreaming is true.
title_override string Overrides the API title.
version string Is the version of the dart package.

DotnetCsproj Configuration

Field Type Description
snippets DotnetCsprojSnippets (optional) Contains XML fragments for .csproj files.
integration_tests DotnetCsprojSnippets (optional) Contains configuration for integration test projects.

DotnetCsprojSnippets Configuration

Field Type Description
embedded_resources list of string Is a list of glob patterns for embedded resources.

DotnetPackage Configuration

Field Type Description
additional_service_descriptors list of string Is a list of extra service descriptors to include.
csproj DotnetCsproj (optional) Contains configuration for .csproj file generation and overrides.
dependencies map[string]string Maps NuGet package IDs to version strings.
generator string Overrides the default generator (e.g., "proto").
package_group list of string Lists packages that must be released together.
postgeneration list of DotnetPostgeneration (optional) Contains post-generation shell commands or extra protos.
pregeneration list of DotnetPregeneration (optional) Contains declarative proto mutations.

DotnetPostgeneration Configuration

Field Type Description
run string Is a shell command to execute.
extra_proto string Is an extra proto file to compile.

DotnetPregeneration Configuration

Field Type Description
rename_message DotnetRenameMessage (optional) Renames a message.
remove_field DotnetRemoveField (optional) Removes a field from a message.
rename_rpc DotnetRenameRPC (optional) Renames an RPC.

DotnetRemoveField Configuration

Field Type Description
message string
field string

DotnetRenameMessage Configuration

Field Type Description
from string
to string

DotnetRenameRPC Configuration

Field Type Description
from string
to string
wire_name string

GoAPI Configuration

Field Type Description
client_package string Is the package name of the generated client.
diregapic bool Indicates whether generation uses DIREGAPIC (Discovery REST GAPICs). This is typically false. Used for the GCE (compute) client.
disabled_generator_features list of string Provides a mechanism for disabling generator features at the API level. These features will be disabled if both specified in EnabledGeneratorFeatures and DisabledGeneratorFeatures.
enabled_generator_features list of string Provides a mechanism for enabling generator features at the API level.
import_path string Is the Go import path for the API.
nested_protos list of string Is a list of nested proto files.
no_metadata bool Indicates whether to skip generating gapic_metadata.json. This is typically false.
no_snippets bool Indicates whether to skip generating snippets. This is typically false.
proto_only bool Determines whether to generate a Proto-only client. A proto-only client does not define a service in the proto files.
proto_package string Is the proto package name.

GoModule Configuration

Field Type Description
delete_generation_output_paths list of string Is a list of paths to delete before generation.
module_path_version string Is the version of the Go module path.
nested_module string Is the name of a nested module directory.

JavaAPI Configuration

Field Type Description
monolithic bool Indicates whether to merge all modules (proto, grpc, gapic) into a single directory. This is currently only used for the grafeas library to maintain its legacy code structure.
additional_protos list of AdditionalProto (optional) Is a list of additional proto files to include in generation. By default, these files are used purely as compilation dependencies for the GAPIC generator. Note: google/cloud/common_resources.proto is included by default unless OmitCommonResources is set to true.
omit_common_resources bool Indicates whether to omit the default inclusion of google/cloud/common_resources.proto.
excluded_protos list of string Is a list of proto files to exclude from generation. It expects the full path starting from the root of the googleapis directory (e.g., "google/cloud/aiplatform/v1/schema/io_format.proto").
skip_proto_class_generation list of string Is a list of proto files to exclude from generating proto module, but included in generating gRPC or GAPIC modules and packaged proto files. It expects the full path starting from the root of the googleapis directory (e.g., "google/cloud/aiplatform/v1beta1/schema/geometry.proto"). TODO(googleapis#5661): remove after migration.
gapic_artifact_id_override string Overrides the artifact ID for the GAPIC module. It determines the module's directory name and is used to derive proto and gRPC artifact IDs if they are not explicitly overridden.
grpc_artifact_id_override string Overrides the artifact ID for the gRPC module. The artifact ID is also used as the name for the module's directory.
proto_artifact_id_override string Overrides the artifact ID for the proto module. The artifact ID is also used as the name for the module's directory.
generate_gapic bool (optional) Indicates whether to generate the GAPIC client surface. Defaults to true.
generate_proto bool (optional) Indicates whether to generate proto module. Defaults to true. If set to false, should also set generate_resource_names to false.
generate_grpc bool (optional) Indicates whether to generate grpc module. Defaults to true. TODO(googleapis#6066): remove after this is resolved
generate_resource_names bool (optional) Indicates whether to extract resource names from the GAPIC phase. Defaults to true.
copy_files list of JavaFileCopy (optional) Is a list of file copies to perform after generation. It applies to files in the GAPIC module.
samples bool (optional) Determines whether to generate samples for the API, default is true when omitted.

JavaDefault Configuration

Field Type Description
custom_group_ids map[string]string Maps API path prefixes (e.g., "google/shopping") to their corresponding Maven Group IDs (e.g., "com.google.shopping"). Use this to override the default "com.google.cloud" Group ID for specific API paths (e.g., maps, ads, shopping).
libraries_bom_version string Is the version of the libraries-bom to use for Java. This must be set in the default configuration.

JavaFileCopy Configuration

Field Type Description
source string Is the source path relative to the generated GAPIC module directory (e.g., "src/main/java/com/google/storage/v2/gapic_metadata.json"). These paths are used before restructuring the output into Maven modules.
destination string Is the destination path relative to the generated GAPIC module directory. These paths are used before restructuring the output into Maven modules.

JavaModule Configuration

Field Type Description
alternate_headers string Is the path to a file containing alternate license header text.
api_id_override string Is the ID of the API (e.g., "pubsub.googleapis.com"), allows the "api_id" field in .repo-metadata.json to be overridden. Defaults to "{library.api_shortname}.googleapis.com".
api_reference string Is the URL for the API reference documentation.
api_description_override string Allows the "api_description" field in .repo-metadata.json to be overridden.
api_shortname_override string Allows the "api_shortname" field in .repo-metadata.json to be overridden.
artifact_id string Is the Maven artifact ID.
client_documentation_override string Allows the "client_documentation" field in .repo-metadata.json to be overridden.
codeowner_team string Is the GitHub team that owns the code.
excluded_poms list of string Is a list of artifact ids, whose module should be excluded when updating pom.xml and are omitted when counting new modules.
extra_versioned_modules string Is a list of extra versioned modules.
group_id string Is the Maven group ID, defaults to "com.google.cloud".
issue_tracker_override string Allows the "issue_tracker" field in .repo-metadata.json to be overridden.
released_version string Is the last released version of the library. If omitted, it will be derived from the library version. Note: It assumes a minor bump from the previous '.0' version (e.g., '1.2.0-SNAPSHOT' -> '1.1.0') and does not support deriving previous patch releases (e.g., '1.1.1').
library_type_override string Allows the "library_type" field in .repo-metadata.json to be overridden.
min_java_version int Is the minimum Java version required.
name_pretty_override string Allows the "name_pretty" field in .repo-metadata.json to be overridden.
product_documentation_override string Allows the "product_documentation" field in .repo-metadata.json to be overridden.
recommended_package string Is the recommended package name.
billing_not_required bool Indicates whether the API does NOT require billing. This is typically false.
rest_documentation string Is the URL for the REST documentation.
rpc_documentation string Is the URL for the RPC documentation.
transport_override string Allows the "transport" field in .repo-metadata.json to be overridden. TODO(googleapis#5561): investigate and determine if can remove
skip_pom_updates bool Indicates whether to skip updating pom.xml files. TODO(googleapis#5277): re-evaluate together with ExcludedPOMs
skip_api_id bool Indicates whether to skip adding api_id to .repo-metadata.json.

NodejsAPI Configuration

Field Type Description
additional_protos list of string Is a list of additional proto files to include in generation.
diregapic bool Indicates whether generation uses DIREGAPIC (Discovery REST GAPICs). This is typically false. Used for the GCE (compute) client.
mixins string Controls mixin behavior for this API (e.g., "none" to disable). When set, this overrides the package-level mixins setting.
omit_common_resources bool Indicates whether to omit the default inclusion of google/cloud/common_resources.proto.
path string Is the source path.

NodejsPackage Configuration

Field Type Description
additional_protos list of string Is a list of additional proto files to include in generation. This can be overridden at the API level.
bundle_config string Is the path to a GAPIC bundle config file.
default_version string Is the default version of the API to use. When omitted, the version in the first API path is used.
dependencies map[string]string Maps npm package names to version constraints.
esm bool Indicates that generation should produce ES Modules (ESM) outputs.
extra_protoc_parameters list of string Is a list of extra parameters to pass to protoc.
handwritten_layer bool Indicates the library has a handwritten layer on top of the generated code.
main_service string Is the name of the main service for libraries with a handwritten layer.
nodejs_apis list of NodejsAPI (optional) Is a list of Node.js-specific API configurations.
package_name string Is the npm package name (e.g., "@google-cloud/access-approval").
client_documentation_override string Allows the client_documentation field in .repo-metadata.json to be overridden from the default that's inferred.
metadata_name_override string Allows the name field in .repo-metadata.json to be overridden.
name_pretty_override string Allows the name_pretty field in .repo-metadata.json to be overridden.

PHPAPI Configuration

Field Type Description
additional_protos list of string Is a list of additional proto files to include in generation.
common_resources bool (optional) Indicates whether to include common resources in generation. Must be configured either globally or per-API.
proto_package string Overrides the derived proto package for the API.
staging_subdir string Is the subdirectory in staging where the generated files should be placed.

PHPDefault Configuration

Field Type Description
common_resources bool (optional) Indicates whether to include common resources in generation. Must be configured either globally or per-API.

PHPPackage Configuration

Field Type Description
component_name string Overrides the derived component name used for output/staging.

PythonDefault Configuration

Field Type Description
allowed_namespaces list of string Contains the list of allowed GAPIC namespaces. If empty, all namespaces are allowed.
common_gapic_paths list of string Contains paths which are generated for any package containing a GAPIC API. These are relative to the package's output directory, and the string "{neutral-source}" is replaced with the path to the version-neutral source code (e.g. "google/cloud/run"). If a library defines its own common_gapic_paths, they will be appended to the defaults.
library_type string Is the type to emit in .repo-metadata.json.

PythonPackage Configuration

Field Type Description
(embedded) PythonDefault
opt_args_by_api map[string][]string Contains additional options passed to the generator. In each entry, the key is the API path and the value is the list of options to pass when generating that API. Example: {"google/cloud/secrets/v1beta": ["python-gapic-name=secretmanager"]}
proto_only_apis list of string Contains the list of API paths which are proto-only, so should use regular protoc Python generation instead of GAPIC.
client_documentation_override string Allows the client_documentation field in .repo-metadata.json to be overridden from the default that's inferred. TODO(googleapis#4175): reduce uses of this field to only cases where it's really needed.
issue_tracker_override string Allows the issue_tracker field in .repo-metadata.json to be overridden, to reduce diffs while migrating. TODO(googleapis#4175): remove this field.
metadata_name_override string Allows the name in .repo-metadata.json (which is also used as part of the client documentation URI) to be overridden. By default, it's the package name, but older packages use the API short name instead.
default_version string Is the default version of the API to use. When omitted, the version in the first API path is used.

RubyAPI Configuration

Field Type Description
additional_protos list of string Is a list of additional proto files to include in generation.
delete_generation_output_paths list of string Is a list of directory paths relative to the output directory to delete after generation.
ruby_cloud_opts RubyCloudOpts (optional) Contains options passed to the Ruby Cloud GAPIC generator as the --ruby_cloud_opt option.

RubyCloudOpts Configuration

Field Type Description
ruby-cloud-env-prefix string Is the environment variable prefix.
ruby-cloud-extra-dependencies string Contains extra runtime dependencies to the .gemspec file.
ruby-cloud-factory-method-suffix string Appends a suffix to client constructor helper methods.
ruby-cloud-gem-namespace string Is the root Ruby namespace.
ruby-cloud-migration-version string Specifies the gem version milestone at which the library was migrated to GAPIC, generating a migration section in the README file.
ruby-cloud-namespace-override string Overrides token / segment replacements applied across all generated module & class paths.
ruby-cloud-path-override string Overrides file/directory paths under lib/ and proto_docs/.
ruby-cloud-service-override string Overrides generated service class names when proto package service names don't match desired Ruby conventions.
ruby-cloud-wrapper-gem-override string Overrides a versioned client gem to a custom non-standard main wrapper gem name.
ruby-cloud-yard-strict string Enables or disables strict YARD syntax checks during generation.

RubyPackage Configuration

Field Type Description
wrapper_of list of string Contains the API versions (e.g. "v1:0.29") of versioned libraries that this library wraps.

RustCrate Configuration

Field Type Description
(embedded) RustDefault
modules list of RustModule (optional) Specifies generation targets for veneer crates. Each module defines a source proto path, output location, and template to use.
per_service_features bool Enables per-service feature flags.
module_path string Is the module path for the crate.
template_override string Overrides the default template.
package_name_override string Overrides the package name.
root_name string Is the root name for the crate.
default_features list of string Is a list of default features to enable.
include_list list of string Is a list of proto files to include (e.g., "date.proto", "expr.proto").
included_ids list of string Is a list of IDs to include.
skipped_ids list of string Is a list of IDs to skip.
disabled_clippy_warnings list of string Is a list of clippy warnings to disable.
has_veneer bool Indicates whether the crate has a veneer.
routing_required bool Indicates whether routing is required.
include_grpc_only_methods bool Indicates whether to include gRPC-only methods.
include_streaming_methods bool Indicates whether to include gRPC streaming methods.
include_bidi_streaming_methods bool Indicates whether to include gRPC bi-directional streaming methods.
post_process_protos string Indicates whether to post-process protos.
documentation_overrides list of RustDocumentationOverride Contains overrides for element documentation.
pagination_overrides list of RustPaginationOverride Contains overrides for pagination configuration.
name_overrides string Contains codec-level overrides for type and service names.
discovery RustDiscovery (optional) Contains discovery-specific configuration for LRO polling.
quickstart_service_override string Overrides the default heuristically selected service for the package-level quickstart.

RustDefault Configuration

Field Type Description
package_dependencies list of RustPackageDependency (optional) Is a list of default package dependencies. These are inherited by all libraries. If a library defines its own package_dependencies, the library-specific ones take precedence over these defaults for dependencies with the same name.
disabled_rustdoc_warnings list of string Is a list of rustdoc warnings to disable.
generate_setter_samples string Indicates whether to generate setter samples.
generate_rpc_samples string Indicates whether to generate RPC samples.
detailed_tracing_attributes bool (optional) Indicates whether to include detailed tracing attributes.
lro_stub_options bool (optional) Indicates whether to include LRO poller options in generated stub traits.
resource_name_heuristic bool (optional) Indicates whether to apply heuristics to identify and generate resource names.

RustDocumentationOverride Configuration

Field Type Description
id string Is the fully qualified element ID (e.g., .google.cloud.dialogflow.v2.Message.field).
match string Is the text to match in the documentation.
replace string Is the replacement text.

RustModule Configuration

Field Type Description
disabled_rustdoc_warnings yaml.StringSlice Specifies rustdoc lints to disable. An empty slice explicitly enables all warnings.
detailed_tracing_attributes bool (optional) Indicates whether to include detailed tracing attributes. This overrides the crate-level setting.
lro_stub_options bool (optional) Indicates whether to include LRO poller options in generated stub traits. This overrides the crate-level setting.
documentation_overrides list of RustDocumentationOverride Contains overrides for element documentation.
extend_grpc_transport bool Indicates whether the transport stub can be extended (in order to support streams).
generate_setter_samples string Indicates whether to generate setter samples.
generate_rpc_samples string Indicates whether to generate RPC samples.
has_veneer bool Indicates whether this module has a handwritten wrapper.
included_ids list of string Is a list of proto IDs to include in generation.
include_grpc_only_methods bool Indicates whether to include gRPC-only methods.
include_list yaml.StringSlice Is a list of proto files to include (e.g., "date.proto", "expr.proto").
include_streaming_methods bool Indicates whether to include gRPC streaming methods.
include_bidi_streaming_methods bool Indicates whether to include gRPC bi-directional streaming methods.
internal_builders bool Indicates whether generated builders should be internal to the crate.
module_path string Is the Rust module path for converters (e.g., "crate::generated::gapic::model").
module_roots map[string]string
name_overrides string Contains codec-level overrides for type and service names.
output string Is the directory where generated code is written (e.g., "src/storage/src/generated/gapic").
post_process_protos string Contains code to post-process generated protos.
resource_name_heuristic bool (optional) Indicates whether to apply heuristics to identify and generate resource names. This overrides the crate-level setting.
root_name string Is the key for the root directory in the source map. It overrides the default root, googleapis, used by the rust+prost generator.
routing_required bool Indicates whether routing is required.
service_config string Is the path to the service config file.
skipped_ids list of string Is a list of proto IDs to skip in generation.
specification_format string Overrides the library-level specification format.
api_path string Is the proto path to generate from (e.g., "google/storage/v2").
template string Specifies which generator template to use. Valid values: "grpc-client", "http-client", "prost", "convert-prost", "mod", "storage".

RustPackageDependency Configuration

Field Type Description
name string Is the dependency name. It is listed first so it appears at the top of each dependency entry in YAML.
ignore bool Prevents this package from being mapped to an external crate. When true, references to this package stay as crate:: instead of being mapped to the external crate name. This is used for self-referencing packages like location and longrunning.
package string Is the package name.
source string Is the dependency source.
feature string Is the feature name for the dependency.
force_used bool Forces the dependency to be used even if not referenced.
used_if string Specifies a condition for when the dependency is used.

RustPaginationOverride Configuration

Field Type Description
id string Is the fully qualified method ID (e.g., .google.cloud.sql.v1.Service.Method).
item_field string Is the name of the field used for items.

SwiftDefault Configuration

Field Type Description
dependencies list of SwiftDependency Is a list of package dependencies.
default_version string The default version for new libraries.

SwiftDependency Configuration

Field Type Description
name string Is the module imported from the dependency.

Examples:
- to import Logging from the swift-log package, create a dependency: {name: "Logging", version: "1.14.0", url: "https://github.com/apple/swift-log"},
- to import GoogleIamV1 from the google-iam-v1 package. {name: "GoogleIamV1", path: "generated/google-iam-v1"}
path string Configures the path for local (to the monorepo) packages.

For example, the authentication package definition will set this to packages/auth, which would generate the following snippet in the Package.swift files:

.package(path: "../../packages/auth")
url string Configures the url: parameter in the package definition.

For example, https://github.com/apple/swift-protobuf would generate the following snippet in the Package.swift files:

.package(url: "https://github.com/apple/swift-protobuf")
version string Configures the minimum version for external package definitions.

For example, if the swift-protobuf package used 1.36.1, then the codec would generate the following snippet in the Package.swift files:

.package(url: "https://github.com/apple/swift-protobuf", from: "1.36.1")
required_by_services bool Is true if this dependency is required by packages with services.

This will be set for the gax library and the auth library. Maybe more if we split the HTTP and gRPC clients into separate libraries.
api_package string Is the name of the API package provided by this library.

In Swift a package contains at most one channel for one API. For packages that implement an API, this field contains the name of the package in the specification language of that API. At the moment this is only used by Protobuf-based APIs, as OpenAPI and discovery doc APIs are self-contained.

Note that some packages, for example auth and gax, do not implement APIs. This field is empty for such libraries.

Examples:
- The GoogleCloudWkt package will set this to google.cloud.protobuf.
- The GoogleCloudLocation package will set this to google.cloud.location.

SwiftModule Configuration

Field Type Description
output string Is the directory where generated code is written (e.g., "Tests/ProtoJSON/generated").
service_config string Is the path to the service config file (e.g., "google/storage/control/v2/storage_v2.yaml").
api_path string Is the proto path to generate from (e.g., "google/storage/v2").
module_type string Is the type of module to generate (e.g., "swift-protobuf", "convert-swift", or empty/"default" for standard GAPIC).
include_list list of string Is a subset of proto files under the target API path to include. This is typically reserved for special cases to avoid generating unused/dead code. For example, in Storage we need Protobuf gencode for a subset of the protos in the google/type directory. This code is private to the package (google-cloud-storage in Rust, GoogleCloudStorage in Swift). All other files in google/type would be dead code.
skipped_ids list of string Is a list of proto IDs to skip in generation for this module.
module_path string Is the module import path or target containing stubs (used by convert-swift).

SwiftPackage Configuration

Field Type Description
(embedded) SwiftDefault
library_name_override string Overrides the default library name.

In Swift, each GAPIC package consists of a single product (the library), which contains a single target and module name. For example, the package for the google/cloud/secretmanager/v1 API is called google-cloud-secretmanager-v1, and contains a single product: GoogleCloudSecretManagerV1, which in turn contains a single target and module of the same name.

To use the library applications use this import:

import GoogleCloudSecretManagerV1

Normally the name is derived from:
- If the Protobuf namespace overrides for PHP, Ruby, and C# are consistent, sidekick uses this name.
- Otherwise, the name implied by the Protobuf package
- Or the package set in the service config yaml file
include_list list of string Is a subset of proto files under the target API path to include (e.g., ["date.proto", "expr.proto"]).
skipped_ids list of string Is a list of proto IDs to skip in generation for the package.
modules list of SwiftModule (optional) Specifies generation targets for veneers and test packages.

Each module defines a source proto path, and output location.
package_name_override string Overrides the package name.

This may be useful if the protobuf package lacks the necessary prefixes, e.g. grafeas.v1 may be published as google-grafeas-v1 to match the other packages.
per_service_traits bool Enables per-service compile-time flags.
default_traits list of string Is a list of compile-time traits enabled by default.
discovery SwiftDiscovery (optional) Contains discovery-specific configuration for LRO polling.