From 9d74bec4b079847e39cf35c1b0f07be5b378dc09 Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Fri, 31 Jul 2026 11:13:12 -0400 Subject: [PATCH 1/4] feat(agentidentity): generate library --- external/googleapis/update_libraries.sh | 1 + generator/generator_config.textproto | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/external/googleapis/update_libraries.sh b/external/googleapis/update_libraries.sh index 419d7135c3767..ca759de1dce92 100755 --- a/external/googleapis/update_libraries.sh +++ b/external/googleapis/update_libraries.sh @@ -17,6 +17,7 @@ set -euo pipefail declare -A -r LIBRARIES=( ["accessapproval"]="@googleapis//google/cloud/accessapproval/v1:accessapproval_cc_grpc" + ["agentidentity"]="@googleapis//google/cloud/agentidentity/v1:agentidentity_cc_grpc" ["agentregistry"]="@googleapis//google/cloud/agentregistry/v1:agentregistry_cc_grpc" ["accesscontextmanager"]="$( printf ",%s" \ diff --git a/generator/generator_config.textproto b/generator/generator_config.textproto index c62acf5c64025..72fd104d4633e 100644 --- a/generator/generator_config.textproto +++ b/generator/generator_config.textproto @@ -22,6 +22,14 @@ service { retryable_status_codes: ["kUnavailable"] } +# Agent Identity +service { + service_proto_path: "google/cloud/agentidentity/v1/auth_provider_service.proto" + product_path: "google/cloud/agentidentity/v1" + initial_copyright_year: "2026" + retryable_status_codes: ["kUnavailable"] +} + # Agent Registry service { service_proto_path: "google/cloud/agentregistry/v1/agentregistry_service.proto" From e8e753cf4f8f98275f47f64275e4e69c09eab739 Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Fri, 31 Jul 2026 11:23:45 -0400 Subject: [PATCH 2/4] Run generators and format their outputs --- README.md | 3 + ci/etc/expected_install_directories | 6 + cmake/GoogleCloudCppFeatures.cmake | 3 +- .../googleapis/protodeps/agentidentity.deps | 8 + .../googleapis/protolists/agentidentity.list | 1 + google/cloud/agentidentity/BUILD.bazel | 31 + google/cloud/agentidentity/CMakeLists.txt | 36 + google/cloud/agentidentity/README.md | 59 + .../doc/environment-variables.dox | 49 + google/cloud/agentidentity/doc/main.dox | 48 + google/cloud/agentidentity/doc/options.dox | 10 + .../doc/override-authentication.dox | 35 + .../agentidentity/doc/override-endpoint.dox | 25 + .../doc/override-retry-policies.dox | 104 ++ .../doc/override-universe-domain.dox | 24 + .../cloud/agentidentity/quickstart/.bazelrc | 29 + .../agentidentity/quickstart/BUILD.bazel | 25 + .../agentidentity/quickstart/CMakeLists.txt | 35 + .../cloud/agentidentity/quickstart/Makefile | 35 + .../cloud/agentidentity/quickstart/README.md | 135 ++ .../agentidentity/quickstart/WORKSPACE.bazel | 53 + .../agentidentity/quickstart/quickstart.cc | 42 + .../agentidentity/v1/.repo-metadata.json | 14 + .../agentidentity/v1/auth_provider_client.cc | 345 +++++ .../agentidentity/v1/auth_provider_client.h | 1292 +++++++++++++++++ .../v1/auth_provider_connection.cc | 194 +++ .../v1/auth_provider_connection.h | 304 ++++ ..._provider_connection_idempotency_policy.cc | 153 ++ ...h_provider_connection_idempotency_policy.h | 122 ++ .../agentidentity/v1/auth_provider_options.h | 76 + .../internal/auth_provider_auth_decorator.cc | 238 +++ .../internal/auth_provider_auth_decorator.h | 161 ++ .../internal/auth_provider_connection_impl.cc | 506 +++++++ .../internal/auth_provider_connection_impl.h | 143 ++ .../auth_provider_logging_decorator.cc | 322 ++++ .../auth_provider_logging_decorator.h | 161 ++ .../auth_provider_metadata_decorator.cc | 270 ++++ .../auth_provider_metadata_decorator.h | 167 +++ .../internal/auth_provider_option_defaults.cc | 71 + .../internal/auth_provider_option_defaults.h | 37 + .../v1/internal/auth_provider_retry_traits.h | 43 + .../v1/internal/auth_provider_sources.cc | 32 + .../v1/internal/auth_provider_stub.cc | 301 ++++ .../v1/internal/auth_provider_stub.h | 295 ++++ .../v1/internal/auth_provider_stub_factory.cc | 83 ++ .../v1/internal/auth_provider_stub_factory.h | 47 + .../auth_provider_tracing_connection.cc | 256 ++++ .../auth_provider_tracing_connection.h | 140 ++ .../v1/internal/auth_provider_tracing_stub.cc | 317 ++++ .../v1/internal/auth_provider_tracing_stub.h | 170 +++ .../v1/mocks/mock_auth_provider_connection.h | 175 +++ .../samples/auth_provider_client_samples.cc | 190 +++ libraries.bzl | 1 + 53 files changed, 7421 insertions(+), 1 deletion(-) create mode 100644 external/googleapis/protodeps/agentidentity.deps create mode 100644 external/googleapis/protolists/agentidentity.list create mode 100644 google/cloud/agentidentity/BUILD.bazel create mode 100644 google/cloud/agentidentity/CMakeLists.txt create mode 100644 google/cloud/agentidentity/README.md create mode 100644 google/cloud/agentidentity/doc/environment-variables.dox create mode 100644 google/cloud/agentidentity/doc/main.dox create mode 100644 google/cloud/agentidentity/doc/options.dox create mode 100644 google/cloud/agentidentity/doc/override-authentication.dox create mode 100644 google/cloud/agentidentity/doc/override-endpoint.dox create mode 100644 google/cloud/agentidentity/doc/override-retry-policies.dox create mode 100644 google/cloud/agentidentity/doc/override-universe-domain.dox create mode 100644 google/cloud/agentidentity/quickstart/.bazelrc create mode 100644 google/cloud/agentidentity/quickstart/BUILD.bazel create mode 100644 google/cloud/agentidentity/quickstart/CMakeLists.txt create mode 100644 google/cloud/agentidentity/quickstart/Makefile create mode 100644 google/cloud/agentidentity/quickstart/README.md create mode 100644 google/cloud/agentidentity/quickstart/WORKSPACE.bazel create mode 100644 google/cloud/agentidentity/quickstart/quickstart.cc create mode 100644 google/cloud/agentidentity/v1/.repo-metadata.json create mode 100644 google/cloud/agentidentity/v1/auth_provider_client.cc create mode 100644 google/cloud/agentidentity/v1/auth_provider_client.h create mode 100644 google/cloud/agentidentity/v1/auth_provider_connection.cc create mode 100644 google/cloud/agentidentity/v1/auth_provider_connection.h create mode 100644 google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.cc create mode 100644 google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.h create mode 100644 google/cloud/agentidentity/v1/auth_provider_options.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_retry_traits.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_sources.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_stub.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_stub.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.h create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.cc create mode 100644 google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.h create mode 100644 google/cloud/agentidentity/v1/mocks/mock_auth_provider_connection.h create mode 100644 google/cloud/agentidentity/v1/samples/auth_provider_client_samples.cc diff --git a/README.md b/README.md index 62963363b11f3..8c86b4f68bee1 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,9 @@ See each library's `README.md` file for more information about: - [Advisory Notifications API](google/cloud/advisorynotifications/README.md) [[quickstart]](google/cloud/advisorynotifications/quickstart/README.md) [[reference]](https://cloud.google.com/cpp/docs/reference/advisorynotifications/latest) +- [Agent Identity API](google/cloud/agentidentity/README.md) + [[quickstart]](google/cloud/agentidentity/quickstart/README.md) + [[reference]](https://cloud.google.com/cpp/docs/reference/agentidentity/latest) - [Agent Registry API](google/cloud/agentregistry/README.md) [[quickstart]](google/cloud/agentregistry/quickstart/README.md) [[reference]](https://cloud.google.com/cpp/docs/reference/agentregistry/latest) diff --git a/ci/etc/expected_install_directories b/ci/etc/expected_install_directories index 971517611c477..c9e1d3dfc64eb 100644 --- a/ci/etc/expected_install_directories +++ b/ci/etc/expected_install_directories @@ -32,6 +32,10 @@ ./include/google/cloud/advisorynotifications/v1 ./include/google/cloud/advisorynotifications/v1/internal ./include/google/cloud/advisorynotifications/v1/mocks +./include/google/cloud/agentidentity +./include/google/cloud/agentidentity/v1 +./include/google/cloud/agentidentity/v1/internal +./include/google/cloud/agentidentity/v1/mocks ./include/google/cloud/agentregistry ./include/google/cloud/agentregistry/v1 ./include/google/cloud/agentregistry/v1/internal @@ -1304,6 +1308,8 @@ ./lib64/cmake/google_cloud_cpp_accesscontextmanager_mocks ./lib64/cmake/google_cloud_cpp_advisorynotifications ./lib64/cmake/google_cloud_cpp_advisorynotifications_mocks +./lib64/cmake/google_cloud_cpp_agentidentity +./lib64/cmake/google_cloud_cpp_agentidentity_mocks ./lib64/cmake/google_cloud_cpp_agentregistry ./lib64/cmake/google_cloud_cpp_agentregistry_mocks ./lib64/cmake/google_cloud_cpp_aiplatform diff --git a/cmake/GoogleCloudCppFeatures.cmake b/cmake/GoogleCloudCppFeatures.cmake index 934886cf6e432..871c2b8d23142 100644 --- a/cmake/GoogleCloudCppFeatures.cmake +++ b/cmake/GoogleCloudCppFeatures.cmake @@ -42,7 +42,8 @@ set(GOOGLE_CLOUD_CPP_GA_LIBRARIES "accessapproval" "accesscontextmanager" "advisorynotifications" - "agentregistry" # Generated 2026-06-26 + "agentidentity" + "agentregistry" "aiplatform" "alloydb" "apigateway" diff --git a/external/googleapis/protodeps/agentidentity.deps b/external/googleapis/protodeps/agentidentity.deps new file mode 100644 index 0000000000000..215c8fb2926ff --- /dev/null +++ b/external/googleapis/protodeps/agentidentity.deps @@ -0,0 +1,8 @@ +@googleapis//google/api:annotations_proto +@googleapis//google/api:client_proto +@googleapis//google/api:field_behavior_proto +@googleapis//google/api:field_info_proto +@googleapis//google/api:http_proto +@googleapis//google/api:launch_stage_proto +@googleapis//google/api:resource_proto +@googleapis//google/rpc:status_proto diff --git a/external/googleapis/protolists/agentidentity.list b/external/googleapis/protolists/agentidentity.list new file mode 100644 index 0000000000000..f0594e7c014da --- /dev/null +++ b/external/googleapis/protolists/agentidentity.list @@ -0,0 +1 @@ +@googleapis//google/cloud/agentidentity/v1:auth_provider_service.proto diff --git a/google/cloud/agentidentity/BUILD.bazel b/google/cloud/agentidentity/BUILD.bazel new file mode 100644 index 0000000000000..3e39dbe44dc08 --- /dev/null +++ b/google/cloud/agentidentity/BUILD.bazel @@ -0,0 +1,31 @@ +# Copyright 2026 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 +# +# https://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. + +load("//bazel:gapic.bzl", "cc_gapic_library") + +package(default_visibility = ["//visibility:private"]) + +licenses(["notice"]) # Apache 2.0 + +service_dirs = ["v1/"] + +googleapis_deps = [ + "@googleapis//google/cloud/agentidentity/v1:agentidentity_cc_grpc", +] + +cc_gapic_library( + name = "agentidentity", + googleapis_deps = googleapis_deps, + service_dirs = service_dirs, +) diff --git a/google/cloud/agentidentity/CMakeLists.txt b/google/cloud/agentidentity/CMakeLists.txt new file mode 100644 index 0000000000000..1fec1d16a18ea --- /dev/null +++ b/google/cloud/agentidentity/CMakeLists.txt @@ -0,0 +1,36 @@ +# ~~~ +# Copyright 2026 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 +# +# https://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. +# ~~~ + +include(GoogleCloudCppLibrary) + +google_cloud_cpp_add_gapic_library(agentidentity "Agent Identity API" + SERVICE_DIRS "v1/") + +if (BUILD_TESTING AND GOOGLE_CLOUD_CPP_ENABLE_CXX_EXCEPTIONS) + add_executable(agentidentity_quickstart "quickstart/quickstart.cc") + target_link_libraries(agentidentity_quickstart + PRIVATE google-cloud-cpp::agentidentity) + google_cloud_cpp_add_common_options(agentidentity_quickstart) + add_test( + NAME agentidentity_quickstart + COMMAND + cmake -P "${PROJECT_SOURCE_DIR}/cmake/quickstart-runner.cmake" + $ GOOGLE_CLOUD_PROJECT + GOOGLE_CLOUD_CPP_TEST_REGION # EDIT HERE + ) + set_tests_properties(agentidentity_quickstart + PROPERTIES LABELS "integration-test;quickstart") +endif () diff --git a/google/cloud/agentidentity/README.md b/google/cloud/agentidentity/README.md new file mode 100644 index 0000000000000..adf913b0a2534 --- /dev/null +++ b/google/cloud/agentidentity/README.md @@ -0,0 +1,59 @@ +# Agent Identity API C++ Client Library + +This directory contains an idiomatic C++ client library for the +[Agent Identity API][cloud-service-docs]. + +While this library is **GA**, please note that the Google Cloud C++ client +libraries do **not** follow [Semantic Versioning](https://semver.org/). + +## Quickstart + +The [quickstart/](quickstart/README.md) directory contains a minimal environment +to get started using this client library in a larger project. The following +"Hello World" program is used in this quickstart, and should give you a taste of +this library. + + + +```cc +#include "google/cloud/agentidentity/v1/ EDIT HERE _client.h" +#include "google/cloud/location.h" +#include + +int main(int argc, char* argv[]) try { + if (argc != 3) { + std::cerr << "Usage: " << argv[0] << " project-id location-id\n"; + return 1; + } + + auto const location = google::cloud::Location(argv[1], argv[2]); + + namespace agentidentity = ::google::cloud::agentidentity_v1; + auto client = agentidentity::ServiceClient( + agentidentity::MakeServiceConnection()); // EDIT HERE + + for (auto r : client.List /*EDIT HERE*/ (location.FullName())) { + if (!r) throw std::move(r).status(); + std::cout << r->DebugString() << "\n"; + } + + return 0; +} catch (google::cloud::Status const& status) { + std::cerr << "google::cloud::Status thrown: " << status << "\n"; + return 1; +} +``` + + + +## More Information + +- Official documentation about the [Agent Identity API][cloud-service-docs] + service +- [Reference doxygen documentation][doxygen-link] for each release of this + client library +- Detailed header comments in our [public `.h`][source-link] files + +[cloud-service-docs]: https://cloud.google.com/agentidentity/docs/overview +[doxygen-link]: https://cloud.google.com/cpp/docs/reference/agentidentity/latest/ +[source-link]: https://github.com/googleapis/google-cloud-cpp/tree/main/google/cloud/agentidentity diff --git a/google/cloud/agentidentity/doc/environment-variables.dox b/google/cloud/agentidentity/doc/environment-variables.dox new file mode 100644 index 0000000000000..9081ceac5b651 --- /dev/null +++ b/google/cloud/agentidentity/doc/environment-variables.dox @@ -0,0 +1,49 @@ +/*! +@page agentidentity-env Environment Variables + +A number of environment variables can be used to configure the behavior of +the library. There are also functions to configure this behavior in code. The +environment variables are convenient when troubleshooting problems. + +@section agentidentity-env-endpoint Endpoint Overrides + + + +- `GOOGLE_CLOUD_CPP_AUTH_PROVIDER_SERVICE_ENDPOINT=...` overrides the + `EndpointOption` (which defaults to "agentidentity.googleapis.com") + used by `MakeAuthProviderServiceConnection()`. + + + +@see google::cloud::EndpointOption + +@section agentidentity-env-logging Logging + +`GOOGLE_CLOUD_CPP_ENABLE_TRACING=rpc`: turns on tracing for most gRPC +calls. The library injects an additional Stub decorator that prints each gRPC +request and response. Unless you have configured your own logging backend, +you should also set `GOOGLE_CLOUD_CPP_ENABLE_CLOG` to produce any output on +the program's console. + +@see google::cloud::LoggingComponentsOption + +`GOOGLE_CLOUD_CPP_TRACING_OPTIONS=...`: modifies the behavior of gRPC tracing, +including whether messages will be output on multiple lines, or whether +string/bytes fields will be truncated. + +@see google::cloud::GrpcTracingOptionsOption + +`GOOGLE_CLOUD_CPP_ENABLE_CLOG=yes`: turns on logging in the library, basically +the library always "logs" but the logging infrastructure has no backend to +actually print anything until the application sets a backend or they set this +environment variable. + +@see google::cloud::LogBackend +@see google::cloud::LogSink + +@section agentidentity-env-project Setting the Default Project + +`GOOGLE_CLOUD_PROJECT=...`: is used in examples and integration tests to +configure the GCP project. This has no effect in the library. + +*/ diff --git a/google/cloud/agentidentity/doc/main.dox b/google/cloud/agentidentity/doc/main.dox new file mode 100644 index 0000000000000..6df66c72c29b3 --- /dev/null +++ b/google/cloud/agentidentity/doc/main.dox @@ -0,0 +1,48 @@ +/*! + +@mainpage Agent Identity API C++ Client Library + +An idiomatic C++ client library for the [Agent Identity API][cloud-service-docs]. + + + +While this library is **GA**, please note that the Google Cloud C++ client libraries do **not** follow +[Semantic Versioning](https://semver.org/). + +@tableofcontents{HTML:2} + +## Quickstart + +The following shows the code that you'll run in the +`google/cloud/agentidentity/quickstart/` directory, +which should give you a taste of the Agent Identity API C++ client library API. + +@snippet quickstart.cc all + +## Main classes + + +The main class in this library is +[`agentidentity_v1::AuthProviderServiceClient`](@ref google::cloud::agentidentity_v1::AuthProviderServiceClient). All RPCs are exposed +as member functions of this class. Other classes provide helpers, configuration +parameters, and infrastructure to mock +[`agentidentity_v1::AuthProviderServiceClient`](@ref google::cloud::agentidentity_v1::AuthProviderServiceClient) when testing your +application. + + +## More Information + +- @ref common-error-handling - describes how the library reports errors. +- @ref agentidentity-override-endpoint - describes how to override the default + endpoint. +- @ref agentidentity-override-authentication - describes how to change the + authentication credentials used by the library. +- @ref agentidentity-override-retry - describes how to change the default retry + policies. +- @ref agentidentity-env - describes environment variables that can configure the + behavior of the library. +- @ref agentidentity-override-universe-domain - describes how to override the default universe domain. + +[cloud-service-docs]: https://cloud.google.com/agentidentity/docs/overview + +*/ diff --git a/google/cloud/agentidentity/doc/options.dox b/google/cloud/agentidentity/doc/options.dox new file mode 100644 index 0000000000000..42ba8cf482f83 --- /dev/null +++ b/google/cloud/agentidentity/doc/options.dox @@ -0,0 +1,10 @@ +/*! +@defgroup google-cloud-agentidentity-options Agent Identity API Configuration Options + +This library uses the same mechanism (`google::cloud::Options`) and the common +[options](@ref options) as all other C++ client libraries for its configuration. +Some `*Option` classes, which are only used in this library, are documented in +this page. + +@see @ref options - for an overview of client library configuration. +*/ diff --git a/google/cloud/agentidentity/doc/override-authentication.dox b/google/cloud/agentidentity/doc/override-authentication.dox new file mode 100644 index 0000000000000..5b24bf981dca3 --- /dev/null +++ b/google/cloud/agentidentity/doc/override-authentication.dox @@ -0,0 +1,35 @@ +/*! +@page agentidentity-override-authentication How to Override the Authentication Credentials + +Unless otherwise configured, the client libraries use +[Application Default Credentials] to authenticate with Google Cloud Services. +While this works for most applications, in some cases you may need to override +this default. You can do so by providing the +[UnifiedCredentialsOption](@ref google::cloud::UnifiedCredentialsOption) +The following example shows how to explicitly load a service account key file: + + +@snippet auth_provider_client_samples.cc with-service-account + + + +Keep in mind that we chose this as an example because it is relatively easy to +understand. Consult the [Best practices for managing service account keys] +guide for more details. + +@see @ref guac - for more information on the factory functions to create +`google::cloud::Credentials` objects. + +[Best practices for managing service account keys]: https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys +[Application Default Credentials]: https://cloud.google.com/docs/authentication#adc + +*/ + +// + +/*! @page agentidentity_v1::AuthProviderServiceClient-service-account-snippet Override agentidentity_v1::AuthProviderServiceClient Authentication Defaults + +@snippet google/cloud/agentidentity/v1/samples/auth_provider_client_samples.cc with-service-account + +*/ +// diff --git a/google/cloud/agentidentity/doc/override-endpoint.dox b/google/cloud/agentidentity/doc/override-endpoint.dox new file mode 100644 index 0000000000000..caff083b85b4b --- /dev/null +++ b/google/cloud/agentidentity/doc/override-endpoint.dox @@ -0,0 +1,25 @@ +/*! +@page agentidentity-override-endpoint How to Override the Default Endpoint + +In some cases, you may need to override the default endpoint used by the client +library. Use the +[EndpointOption](@ref google::cloud::EndpointOption) when initializing the +client library to change this default. + + +For example, this will override the default endpoint for `agentidentity_v1::AuthProviderServiceClient`: + +@snippet auth_provider_client_samples.cc set-client-endpoint + + + +*/ + +// + +/*! @page agentidentity_v1::AuthProviderServiceClient-endpoint-snippet Override agentidentity_v1::AuthProviderServiceClient Endpoint Configuration + +@snippet google/cloud/agentidentity/v1/samples/auth_provider_client_samples.cc set-client-endpoint + +*/ +// diff --git a/google/cloud/agentidentity/doc/override-retry-policies.dox b/google/cloud/agentidentity/doc/override-retry-policies.dox new file mode 100644 index 0000000000000..8d20ccec53b8b --- /dev/null +++ b/google/cloud/agentidentity/doc/override-retry-policies.dox @@ -0,0 +1,104 @@ +/*! +@page agentidentity-override-retry Override Retry, Backoff, and Idempotency Policies + +When it is safe to do so, the library automatically retries requests that fail +due to a transient error. The library then uses [exponential backoff] to backoff +before trying again. Which operations are considered safe to retry, which +errors are treated as transient failures, the details of the exponential backoff +algorithm, and for how long the library retries are all configurable via +policies. + +This document provides examples showing how to override the default policies. + +The policies can be set when the `*Connection` object is created. The library +provides default policies for any policy that is not set. The application can +also override some (or all) policies when the `*Client` object is created. This +can be useful if multiple `*Client` objects share the same `*Connection` object, +but you want different retry behavior in some of the clients. Finally, the +application can override some retry policies when calling a specific member +function. + +The library uses three different options to control the retry loop. The options +have per-client names. + +@section agentidentity-override-retry-retry-policy Configuring the transient errors and retry duration + +The `*RetryPolicyOption` controls: + +- Which errors are to be treated as transient errors. +- How long the library will keep retrying transient errors. + +You can provide your own class for this option. The library also provides two +built-in policies: + +- `*LimitedErrorCountRetryPolicy`: stops retrying after a specified number + of transient errors. +- `*LimitedTimeRetryPolicy`: stops retrying after a specified time. + +Note that a library may have more than one version of these classes. Their name +match the `*Client` and `*Connection` object they are intended to be used +with. Some `*Client` objects treat different error codes as transient errors. +In most cases, only [kUnavailable](@ref google::cloud::StatusCode) is treated +as a transient error. + +@section agentidentity-override-retry-backoff-policy Controlling the backoff algorithm + +The `*BackoffPolicyOption` controls how long the client library will wait +before retrying a request that failed with a transient error. You can provide +your own class for this option. + +The only built-in backoff policy is +[`ExponentialBackoffPolicy`](@ref google::cloud::ExponentialBackoffPolicy). +This class implements a truncated exponential backoff algorithm, with jitter. +In summary, it doubles the current backoff time after each failure. The actual +backoff time for an RPC is chosen at random, but never exceeds the current +backoff. The current backoff is doubled after each failure, but never exceeds +(or is "truncated") if it reaches a prescribed maximum. + +@section agentidentity-override-retry-idempotency-policy Controlling which operations are retryable + +The `*IdempotencyPolicyOption` controls which requests are retryable, as some +requests are never safe to retry. + +Only one built-in idempotency policy is provided by the library. The name +matches the name of the client it is intended for. For example, `FooBarClient` +will use `FooBarIdempotencyPolicy`. This policy is very conservative. + +@section agentidentity-override-retry-example Example + + +For example, this will override the retry policies for `agentidentity_v1::AuthProviderServiceClient`: + +@snippet auth_provider_client_samples.cc set-retry-policy + +This assumes you have created a custom idempotency policy. Such as: + +@snippet auth_provider_client_samples.cc custom-idempotency-policy + + + + +@section agentidentity-override-retry-more-information More Information + +@see google::cloud::Options +@see google::cloud::BackoffPolicy +@see google::cloud::ExponentialBackoffPolicy + +[exponential backoff]: https://en.wikipedia.org/wiki/Exponential_backoff + +*/ + +// + +/*! @page agentidentity_v1::AuthProviderServiceClient-retry-snippet Override agentidentity_v1::AuthProviderServiceClient Retry Policies + +This shows how to override the retry policies for agentidentity_v1::AuthProviderServiceClient: + +@snippet google/cloud/agentidentity/v1/samples/auth_provider_client_samples.cc set-retry-policy + +Assuming you have created a custom idempotency policy. Such as: + +@snippet google/cloud/agentidentity/v1/samples/auth_provider_client_samples.cc custom-idempotency-policy + +*/ +// diff --git a/google/cloud/agentidentity/doc/override-universe-domain.dox b/google/cloud/agentidentity/doc/override-universe-domain.dox new file mode 100644 index 0000000000000..4a5debdd6051d --- /dev/null +++ b/google/cloud/agentidentity/doc/override-universe-domain.dox @@ -0,0 +1,24 @@ +/*! +@page agentidentity-override-universe-domain How to Override the Default Universe Domain + +In some cases, you may need to override the default universe domain used by the +client library. Use `AddUniverseDomainOption` when initializing the client +library to change this default. + + +For example, this will override the default universe domain for `agentidentity_v1::AuthProviderServiceClient`: + +@snippet auth_provider_client_samples.cc set-client-universe-domain + + + +*/ + +// + +/*! @page agentidentity_v1::AuthProviderServiceClient-universe-domain-snippet Override agentidentity_v1::AuthProviderServiceClient Universe Domain + +@snippet google/cloud/agentidentity/v1/samples/auth_provider_client_samples.cc set-client-universe-domain + +*/ +// diff --git a/google/cloud/agentidentity/quickstart/.bazelrc b/google/cloud/agentidentity/quickstart/.bazelrc new file mode 100644 index 0000000000000..e88672558bca1 --- /dev/null +++ b/google/cloud/agentidentity/quickstart/.bazelrc @@ -0,0 +1,29 @@ +# Copyright 2026 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 +# +# https://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. + +# Use host-OS-specific config lines from bazelrc files. +build --enable_platform_specific_config=true + +# The project requires C++ >= 17. +build:linux --cxxopt=-std=c++17 +build:macos --cxxopt=-std=c++17 +# Protobuf and gRPC require (or soon will require) C++17 to compile the "host" +# targets, such as protoc and the grpc plugin. +build:linux --host_cxxopt=-std=c++17 +build:macos --host_cxxopt=-std=c++17 + +# Do not create the convenience links. They are inconvenient when the build +# runs inside a docker image or if one builds a quickstart and then builds +# the project separately. +build --experimental_convenience_symlinks=ignore diff --git a/google/cloud/agentidentity/quickstart/BUILD.bazel b/google/cloud/agentidentity/quickstart/BUILD.bazel new file mode 100644 index 0000000000000..684a5a7efcbe1 --- /dev/null +++ b/google/cloud/agentidentity/quickstart/BUILD.bazel @@ -0,0 +1,25 @@ +# Copyright 2026 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 +# +# https://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. + +licenses(["notice"]) # Apache 2.0 + +cc_binary( + name = "quickstart", + srcs = [ + "quickstart.cc", + ], + deps = [ + "@google_cloud_cpp//:agentidentity", + ], +) diff --git a/google/cloud/agentidentity/quickstart/CMakeLists.txt b/google/cloud/agentidentity/quickstart/CMakeLists.txt new file mode 100644 index 0000000000000..5f4ca13176833 --- /dev/null +++ b/google/cloud/agentidentity/quickstart/CMakeLists.txt @@ -0,0 +1,35 @@ +# Copyright 2026 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 +# +# https://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. + +# This file shows how to use the Agent Identity API C++ client library from a +# larger CMake project. + +cmake_minimum_required(VERSION 3.22...3.31) +project(google-cloud-cpp-agentidentity-quickstart CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(google_cloud_cpp_agentidentity REQUIRED) + +# MSVC requires some additional code to select the correct runtime library +if (VCPKG_TARGET_TRIPLET MATCHES "-static$") + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") +else () + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") +endif () + +# Define your targets. +add_executable(quickstart quickstart.cc) +target_link_libraries(quickstart google-cloud-cpp::agentidentity) diff --git a/google/cloud/agentidentity/quickstart/Makefile b/google/cloud/agentidentity/quickstart/Makefile new file mode 100644 index 0000000000000..94099a53ae3a2 --- /dev/null +++ b/google/cloud/agentidentity/quickstart/Makefile @@ -0,0 +1,35 @@ +# Copyright 2026 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 +# +# https://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. + +# This is a minimal Makefile to show how to use the Agent Identity API C++ client +# for developers who use make(1) as their build system. + +# The CXX, CXXFLAGS and CXXLD variables are hard-coded. These values work for +# our tests, but applications would typically make them configurable parameters. +CXX=g++ +CXXFLAGS=-std=c++17 +CXXLD=$(CXX) +BIN=. + +all: $(BIN)/quickstart + +# Configuration variables to compile and link against the Agent Identity API C++ +# client library. +CLIENT_MODULE := google_cloud_cpp_agentidentity +CLIENT_CXXFLAGS := $(shell pkg-config $(CLIENT_MODULE) --cflags) +CLIENT_CXXLDFLAGS := $(shell pkg-config $(CLIENT_MODULE) --libs-only-L) +CLIENT_LIBS := $(shell pkg-config $(CLIENT_MODULE) --libs-only-l) + +$(BIN)/quickstart: quickstart.cc + $(CXXLD) $(CXXFLAGS) $(CLIENT_CXXFLAGS) $(CLIENT_CXXLDFLAGS) -o $@ $^ $(CLIENT_LIBS) diff --git a/google/cloud/agentidentity/quickstart/README.md b/google/cloud/agentidentity/quickstart/README.md new file mode 100644 index 0000000000000..29961f2e67063 --- /dev/null +++ b/google/cloud/agentidentity/quickstart/README.md @@ -0,0 +1,135 @@ +# HOWTO: using the Agent Identity API C++ client in your project + +This directory contains small examples showing how to use the Agent Identity API +C++ client library in your own project. These instructions assume that you have +some experience as a C++ developer and that you have a working C++ toolchain +(compiler, linker, etc.) installed on your platform. + +- Packaging maintainers or developers who prefer to install the library in a + fixed directory (such as `/usr/local` or `/opt`) should consult the + [packaging guide](/doc/packaging.md). +- Developers who prefer using a package manager such as + [vcpkg](https://vcpkg.io), or [Conda](https://conda.io), should follow the + instructions for their package manager. +- Developers wanting to use the libraries as part of a larger CMake or Bazel + project should consult the current document. Note that there are similar + documents for each library in their corresponding directories. +- Developers wanting to compile the library just to run some examples or tests + should consult the + [building and installing](/README.md#building-and-installing) section of the + top-level README file. +- Contributors and developers to `google-cloud-cpp` should consult the guide to + [set up a development workstation][howto-setup-dev-workstation]. + +## Before you begin + +To run the quickstart examples you will need a working Google Cloud Platform +(GCP) project. + +## Configuring authentication for the C++ Client Library + +Like most Google Cloud Platform (GCP) services, Agent Identity API requires that +your application authenticates with the service before accessing any data. If +you are not familiar with GCP authentication please take this opportunity to +review the [Authentication methods at Google][authentication-quickstart]. + +## Using with Bazel + +> :warning: If you are using Windows or macOS there are additional instructions +> at the end of this document. + +1. Install Bazel using [the instructions][bazel-install] from the `bazel.build` + website. + +1. Compile this example using Bazel: + + ```bash + cd $HOME/google-cloud-cpp/google/cloud/agentidentity/quickstart + bazel build ... + ``` + + Note that Bazel automatically downloads and compiles all dependencies of the + project. As it is often the case with C++ libraries, compiling these + dependencies may take several minutes. + +1. Run the example, changing the placeholder(s) to appropriate values: + + ```bash + bazel run :quickstart -- [...] + ``` + +## Using with CMake + +> :warning: If you are using Windows or macOS there are additional instructions +> at the end of this document. + +1. Install CMake. The package managers for most Linux distributions include a + package for CMake. Likewise, you can install CMake on Windows using a package + manager such as [chocolatey][choco-cmake-link], and on macOS using + [homebrew][homebrew-cmake-link]. You can also obtain the software directly + from the [cmake.org](https://cmake.org/download/). + +1. Install the dependencies with your favorite tools. As an example, if you use + [vcpkg](https://github.com/Microsoft/vcpkg.git): + + ```bash + cd $HOME/vcpkg + ./vcpkg install google-cloud-cpp[core,agentidentity] + ``` + + Note that, as it is often the case with C++ libraries, compiling these + dependencies may take several minutes. + +1. Configure CMake, if necessary, configure the directory where you installed + the dependencies: + + ```bash + cd $HOME/google-cloud-cpp/google/cloud/agentidentity/quickstart + cmake -S . -B .build -DCMAKE_TOOLCHAIN_FILE=$HOME/vcpkg/scripts/buildsystems/vcpkg.cmake + cmake --build .build + ``` + +1. Run the example, changing the placeholder(s) to appropriate values: + + ```bash + .build/quickstart [...] + ``` + +## Platform Specific Notes + +### macOS + +gRPC [requires][grpc-roots-pem-bug] an environment variable to configure the +trust store for SSL certificates, you can download and configure this using: + +```bash +curl -Lo roots.pem https://pki.google.com/roots.pem +export GRPC_DEFAULT_SSL_ROOTS_FILE_PATH="$PWD/roots.pem" +``` + +### Windows + +Bazel tends to create very long file names and paths. You may need to use a +short directory to store the build output, such as `c:\b`, and instruct Bazel to +use it via: + +```shell +bazel --output_user_root=c:\b build ... +``` + +gRPC [requires][grpc-roots-pem-bug] an environment variable to configure the +trust store for SSL certificates, you can download and configure this using: + +```console +@powershell -NoProfile -ExecutionPolicy unrestricted -Command ^ + (new-object System.Net.WebClient).Downloadfile( ^ + 'https://pki.google.com/roots.pem', 'roots.pem') +set GRPC_DEFAULT_SSL_ROOTS_FILE_PATH=%cd%\roots.pem +``` + +[authentication-quickstart]: https://cloud.google.com/docs/authentication/client-libraries "Authenticate for using client libraries" +[bazel-install]: https://docs.bazel.build/versions/main/install.html +[choco-cmake-link]: https://chocolatey.org/packages/cmake +[grpc-roots-pem-bug]: https://github.com/grpc/grpc/issues/16571 +[homebrew-cmake-link]: https://formulae.brew.sh/formula/cmake +[howto-setup-dev-workstation]: /doc/contributor/howto-guide-setup-development-workstation.md diff --git a/google/cloud/agentidentity/quickstart/WORKSPACE.bazel b/google/cloud/agentidentity/quickstart/WORKSPACE.bazel new file mode 100644 index 0000000000000..3b6b9c22fdfde --- /dev/null +++ b/google/cloud/agentidentity/quickstart/WORKSPACE.bazel @@ -0,0 +1,53 @@ +# Copyright 2026 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 +# +# https://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. + +# A minimal WORKSPACE file showing how to use the Agent Identity API +# C++ client library in Bazel-based projects. +workspace(name = "qs") + +# Add the necessary Starlark functions to fetch google-cloud-cpp. +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +# Fetch the Google Cloud C++ libraries. +# NOTE: Update this version and SHA256 as needed. +http_archive( + name = "google_cloud_cpp", + sha256 = "821367f21ec536431bf4fb5dc709a42794465506d7d3f8be40d52d493bcfdd06", + strip_prefix = "google-cloud-cpp-3.7.0", + url = "https://github.com/googleapis/google-cloud-cpp/archive/v3.7.0.tar.gz", +) + +load("@google_cloud_cpp//bazel:workspace0.bzl", "gl_cpp_workspace0") + +gl_cpp_workspace0() + +load("@google_cloud_cpp//bazel:workspace1.bzl", "gl_cpp_workspace1") + +gl_cpp_workspace1() + +load("@google_cloud_cpp//bazel:workspace2.bzl", "gl_cpp_workspace2") + +gl_cpp_workspace2() + +load("@google_cloud_cpp//bazel:workspace3.bzl", "gl_cpp_workspace3") + +gl_cpp_workspace3() + +load("@google_cloud_cpp//bazel:workspace4.bzl", "gl_cpp_workspace4") + +gl_cpp_workspace4() + +load("@google_cloud_cpp//bazel:workspace5.bzl", "gl_cpp_workspace5") + +gl_cpp_workspace5() diff --git a/google/cloud/agentidentity/quickstart/quickstart.cc b/google/cloud/agentidentity/quickstart/quickstart.cc new file mode 100644 index 0000000000000..28848eae665f9 --- /dev/null +++ b/google/cloud/agentidentity/quickstart/quickstart.cc @@ -0,0 +1,42 @@ +// Copyright 2026 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 +// +// https://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. + +//! [all] +#include "google/cloud/agentidentity/v1/ EDIT HERE _client.h" +#include "google/cloud/location.h" +#include + +int main(int argc, char* argv[]) try { + if (argc != 3) { + std::cerr << "Usage: " << argv[0] << " project-id location-id\n"; + return 1; + } + + auto const location = google::cloud::Location(argv[1], argv[2]); + + namespace agentidentity = ::google::cloud::agentidentity_v1; + auto client = agentidentity::ServiceClient( + agentidentity::MakeServiceConnection()); // EDIT HERE + + for (auto r : client.List /*EDIT HERE*/ (location.FullName())) { + if (!r) throw std::move(r).status(); + std::cout << r->DebugString() << "\n"; + } + + return 0; +} catch (google::cloud::Status const& status) { + std::cerr << "google::cloud::Status thrown: " << status << "\n"; + return 1; +} +//! [all] diff --git a/google/cloud/agentidentity/v1/.repo-metadata.json b/google/cloud/agentidentity/v1/.repo-metadata.json new file mode 100644 index 0000000000000..9b686daa5417e --- /dev/null +++ b/google/cloud/agentidentity/v1/.repo-metadata.json @@ -0,0 +1,14 @@ +{ + "api_id": "agentidentity.googleapis.com", + "api_shortname": "agentidentity", + "client_documentation": "https://cloud.google.com/cpp/docs/reference/agentidentity/latest", + "distribution_name": "google-cloud-cpp", + "issue_tracker": "https://issuetracker.google.com/issues?q=componentid:961386%20status=open", + "language": "cpp", + "library_type": "GAPIC_AUTO", + "name_pretty": "Agent Identity API", + "product_documentation": "https://cloud.google.com/agentidentity/docs/overview", + "release_level": "stable", + "repo": "googleapis/google-cloud-cpp", + "requires_billing": true +} diff --git a/google/cloud/agentidentity/v1/auth_provider_client.cc b/google/cloud/agentidentity/v1/auth_provider_client.cc new file mode 100644 index 0000000000000..3f88072cdeca6 --- /dev/null +++ b/google/cloud/agentidentity/v1/auth_provider_client.cc @@ -0,0 +1,345 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/auth_provider_client.h" +#include +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +AuthProviderServiceClient::AuthProviderServiceClient( + std::shared_ptr connection, Options opts) + : connection_(std::move(connection)), + options_( + internal::MergeOptions(std::move(opts), connection_->options())) {} +AuthProviderServiceClient::~AuthProviderServiceClient() = default; + +StreamRange +AuthProviderServiceClient::ListAuthProviders(std::string const& parent, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::ListAuthProvidersRequest request; + request.set_parent(parent); + return connection_->ListAuthProviders(request); +} + +StreamRange +AuthProviderServiceClient::ListAuthProviders( + google::cloud::agentidentity::v1::ListAuthProvidersRequest request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ListAuthProviders(std::move(request)); +} + +StatusOr +AuthProviderServiceClient::GetAuthProvider(std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::GetAuthProviderRequest request; + request.set_name(name); + return connection_->GetAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::CreateAuthProvider( + std::string const& parent, + google::cloud::agentidentity::v1::AuthProvider const& auth_provider, + std::string const& auth_provider_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::CreateAuthProviderRequest request; + request.set_parent(parent); + *request.mutable_auth_provider() = auth_provider; + request.set_auth_provider_id(auth_provider_id); + return connection_->CreateAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::UpdateAuthProvider( + google::cloud::agentidentity::v1::AuthProvider const& auth_provider, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::UpdateAuthProviderRequest request; + *request.mutable_auth_provider() = auth_provider; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAuthProvider(request); +} + +Status AuthProviderServiceClient::DeleteAuthProvider(std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::DeleteAuthProviderRequest request; + request.set_name(name); + return connection_->DeleteAuthProvider(request); +} + +Status AuthProviderServiceClient::DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::UndeleteAuthProvider(std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest request; + request.set_name(name); + return connection_->UndeleteAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteAuthProvider(request); +} + +StreamRange AuthProviderServiceClient::QueryAuthProviders( + std::string const& parent, std::string const& workload_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::QueryAuthProvidersRequest request; + request.set_parent(parent); + request.set_workload_id(workload_id); + return connection_->QueryAuthProviders(request); +} + +StreamRange AuthProviderServiceClient::QueryAuthProviders( + google::cloud::agentidentity::v1::QueryAuthProvidersRequest request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->QueryAuthProviders(std::move(request)); +} + +StreamRange AuthProviderServiceClient::QueryWorkloads( + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::QueryWorkloadsRequest request; + request.set_name(name); + return connection_->QueryWorkloads(request); +} + +StreamRange AuthProviderServiceClient::QueryWorkloads( + google::cloud::agentidentity::v1::QueryWorkloadsRequest request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->QueryWorkloads(std::move(request)); +} + +StreamRange +AuthProviderServiceClient::ListAuthorizations(std::string const& parent, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::ListAuthorizationsRequest request; + request.set_parent(parent); + return connection_->ListAuthorizations(request); +} + +StreamRange +AuthProviderServiceClient::ListAuthorizations( + google::cloud::agentidentity::v1::ListAuthorizationsRequest request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ListAuthorizations(std::move(request)); +} + +StatusOr +AuthProviderServiceClient::GetAuthorization(std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::GetAuthorizationRequest request; + request.set_name(name); + return connection_->GetAuthorization(request); +} + +StatusOr +AuthProviderServiceClient::GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetAuthorization(request); +} + +Status AuthProviderServiceClient::DeleteAuthorization(std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::DeleteAuthorizationRequest request; + request.set_name(name); + return connection_->DeleteAuthorization(request); +} + +Status AuthProviderServiceClient::DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAuthorization(request); +} + +StreamRange +AuthProviderServiceClient::ListAccessSummaries(std::string const& parent, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::ListAccessSummariesRequest request; + request.set_parent(parent); + return connection_->ListAccessSummaries(request); +} + +StreamRange +AuthProviderServiceClient::ListAccessSummaries( + google::cloud::agentidentity::v1::ListAccessSummariesRequest request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ListAccessSummaries(std::move(request)); +} + +StatusOr +AuthProviderServiceClient::GetAccessSummary(std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::GetAccessSummaryRequest request; + request.set_name(name); + return connection_->GetAccessSummary(request); +} + +StatusOr +AuthProviderServiceClient::GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetAccessSummary(request); +} + +StatusOr +AuthProviderServiceClient::RevokeAuthorization(std::string const& name, + std::string const& user_id, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::RevokeAuthorizationRequest request; + request.set_name(name); + request.set_user_id(user_id); + return connection_->RevokeAuthorization(request); +} + +StatusOr +AuthProviderServiceClient::RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RevokeAuthorization(request); +} + +StatusOr +AuthProviderServiceClient::EnableAuthProvider(std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::EnableAuthProviderRequest request; + request.set_name(name); + return connection_->EnableAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::DisableAuthProvider(std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::agentidentity::v1::DisableAuthProviderRequest request; + request.set_name(name); + return connection_->DisableAuthProvider(request); +} + +StatusOr +AuthProviderServiceClient::DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableAuthProvider(request); +} + +StreamRange +AuthProviderServiceClient::ListLocations( + google::cloud::location::ListLocationsRequest request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ListLocations(std::move(request)); +} + +StatusOr +AuthProviderServiceClient::GetLocation( + google::cloud::location::GetLocationRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetLocation(request); +} + +StatusOr AuthProviderServiceClient::SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetIamPolicy(request); +} + +StatusOr AuthProviderServiceClient::GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GetIamPolicy(request); +} + +StatusOr +AuthProviderServiceClient::TestIamPermissions( + google::iam::v1::TestIamPermissionsRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TestIamPermissions(request); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/agentidentity/v1/auth_provider_client.h b/google/cloud/agentidentity/v1/auth_provider_client.h new file mode 100644 index 0000000000000..4e23b44fc14b4 --- /dev/null +++ b/google/cloud/agentidentity/v1/auth_provider_client.h @@ -0,0 +1,1292 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_CLIENT_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_CLIENT_H + +#include "google/cloud/agentidentity/v1/auth_provider_connection.h" +#include "google/cloud/future.h" +#include "google/cloud/options.h" +#include "google/cloud/polling_policy.h" +#include "google/cloud/status_or.h" +#include "google/cloud/version.h" +#include +#include +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/// +/// Service describing handlers for resources +/// +/// @par Equality +/// +/// Instances of this class created via copy-construction or copy-assignment +/// always compare equal. Instances created with equal +/// `std::shared_ptr<*Connection>` objects compare equal. Objects that compare +/// equal share the same underlying resources. +/// +/// @par Performance +/// +/// Creating a new instance of this class is a relatively expensive operation, +/// new objects establish new connections to the service. In contrast, +/// copy-construction, move-construction, and the corresponding assignment +/// operations are relatively efficient as the copies share all underlying +/// resources. +/// +/// @par Thread Safety +/// +/// Concurrent access to different instances of this class, even if they compare +/// equal, is guaranteed to work. Two or more threads operating on the same +/// instance of this class is not guaranteed to work. Since copy-construction +/// and move-construction is a relatively efficient operation, consider using +/// such a copy when using this class from multiple threads. +/// +class AuthProviderServiceClient { + public: + explicit AuthProviderServiceClient( + std::shared_ptr connection, + Options opts = {}); + ~AuthProviderServiceClient(); + + ///@{ + /// @name Copy and move support + AuthProviderServiceClient(AuthProviderServiceClient const&) = default; + AuthProviderServiceClient& operator=(AuthProviderServiceClient const&) = + default; + AuthProviderServiceClient(AuthProviderServiceClient&&) = default; + AuthProviderServiceClient& operator=(AuthProviderServiceClient&&) = default; + ///@} + + ///@{ + /// @name Equality + friend bool operator==(AuthProviderServiceClient const& a, + AuthProviderServiceClient const& b) { + return a.connection_ == b.connection_; + } + friend bool operator!=(AuthProviderServiceClient const& a, + AuthProviderServiceClient const& b) { + return !(a == b); + } + ///@} + + // clang-format off + /// + /// Lists AuthProviders in a given project and location. + /// + /// @param parent Required. The parent resource where the search is performed. + /// Format: projects/{project}/locations/{location} + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.agentidentity.v1.AuthProvider], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.ListAuthProvidersRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L363} + /// + // clang-format on + StreamRange ListAuthProviders( + std::string const& parent, Options opts = {}); + + // clang-format off + /// + /// Lists AuthProviders in a given project and location. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.ListAuthProvidersRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.agentidentity.v1.AuthProvider], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.ListAuthProvidersRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L363} + /// + // clang-format on + StreamRange ListAuthProviders( + google::cloud::agentidentity::v1::ListAuthProvidersRequest request, + Options opts = {}); + + // clang-format off + /// + /// Gets details of a single AuthProvider. + /// + /// @param name Required. Name of the resource + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.GetAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L409} + /// + // clang-format on + StatusOr GetAuthProvider( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Gets details of a single AuthProvider. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.GetAuthProviderRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.GetAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L409} + /// + // clang-format on + StatusOr GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// Creates a new AuthProvider in a given project and location. + /// + /// @param parent Required. The parent resource where the AuthProvider is created. + /// Format: projects/{project}/locations/{location} + /// @param auth_provider Required. The AuthProvider to create. + /// @param auth_provider_id Required. The ID to use for the AuthProvider, which will become the final + /// segment of the AuthProvider's resource name. This value should be 1-63 + /// characters, and valid characters are /[a-z][0-9]-/. The first character + /// must be a lowercase letter, and the last character must be a lowercase + /// letter or a number. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.CreateAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L420} + /// + // clang-format on + StatusOr CreateAuthProvider( + std::string const& parent, + google::cloud::agentidentity::v1::AuthProvider const& auth_provider, + std::string const& auth_provider_id, Options opts = {}); + + // clang-format off + /// + /// Creates a new AuthProvider in a given project and location. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.CreateAuthProviderRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.CreateAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L420} + /// + // clang-format on + StatusOr CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// Updates the parameters of a single AuthProvider. + /// + /// @param auth_provider Required. The AuthProvider resource which replaces the resource on the + /// server. + /// @param update_mask Optional. Field mask is used to specify the fields to be overwritten in the + /// AuthProvider resource by the update. + /// The fields specified in the update_mask are relative to the resource, not + /// the full request. A field will be overwritten if it is in the mask. If the + /// user does not provide a mask then all fields present in the request will be + /// overwritten. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.UpdateAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L460} + /// + // clang-format on + StatusOr UpdateAuthProvider( + google::cloud::agentidentity::v1::AuthProvider const& auth_provider, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + + // clang-format off + /// + /// Updates the parameters of a single AuthProvider. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.UpdateAuthProviderRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.UpdateAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L460} + /// + // clang-format on + StatusOr UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// Deletes a single AuthProvider. + /// + /// @param name Required. Name of the resource + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [`Status`] object. If the request failed, the + /// status contains the details of the failure. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.DeleteAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L494} + /// + // clang-format on + Status DeleteAuthProvider(std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Deletes a single AuthProvider. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.DeleteAuthProviderRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [`Status`] object. If the request failed, the + /// status contains the details of the failure. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.DeleteAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L494} + /// + // clang-format on + Status DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// Undeletes a single AuthProvider. + /// + /// @param name Required. Name of the resource + /// Format: + /// projects/{project}/locations/{location}/authProviders/{auth_provider} + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.UndeleteAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L523} + /// + // clang-format on + StatusOr UndeleteAuthProvider( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Undeletes a single AuthProvider. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.UndeleteAuthProviderRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.UndeleteAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L523} + /// + // clang-format on + StatusOr UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// Queries what all auth_providers are used by a given workload_id. + /// + /// @param parent Required. The parent resource where the search is performed. + /// Format: projects/{project}/locations/{location} + /// @param workload_id Required. The workload identifier to filter by. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains a + /// [`std::string`]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.QueryAuthProvidersRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L845} + /// + // clang-format on + StreamRange QueryAuthProviders(std::string const& parent, + std::string const& workload_id, + Options opts = {}); + + // clang-format off + /// + /// Queries what all auth_providers are used by a given workload_id. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.QueryAuthProvidersRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains a + /// [`std::string`]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.QueryAuthProvidersRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L845} + /// + // clang-format on + StreamRange QueryAuthProviders( + google::cloud::agentidentity::v1::QueryAuthProvidersRequest request, + Options opts = {}); + + // clang-format off + /// + /// Queries what all workloads are using a given auth_provider. + /// + /// @param name Required. The name of the auth_provider to query. + /// Format: + /// projects/{project}/locations/{location}/authProviders/{auth_provider} + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains a + /// [`std::string`]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.QueryWorkloadsRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L884} + /// + // clang-format on + StreamRange QueryWorkloads(std::string const& name, + Options opts = {}); + + // clang-format off + /// + /// Queries what all workloads are using a given auth_provider. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.QueryWorkloadsRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains a + /// [`std::string`]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.QueryWorkloadsRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L884} + /// + // clang-format on + StreamRange QueryWorkloads( + google::cloud::agentidentity::v1::QueryWorkloadsRequest request, + Options opts = {}); + + // clang-format off + /// + /// Lists Authorizations in a given project and location. + /// + /// @param parent Required. The parent resource where the search is performed. + /// Format: + /// projects/{project}/locations/{location}/authProviders/{auth_provider} + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.agentidentity.v1.Authorization], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.Authorization]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L598} + /// [google.cloud.agentidentity.v1.ListAuthorizationsRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L642} + /// + // clang-format on + StreamRange + ListAuthorizations(std::string const& parent, Options opts = {}); + + // clang-format off + /// + /// Lists Authorizations in a given project and location. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.ListAuthorizationsRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.agentidentity.v1.Authorization], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.Authorization]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L598} + /// [google.cloud.agentidentity.v1.ListAuthorizationsRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L642} + /// + // clang-format on + StreamRange + ListAuthorizations( + google::cloud::agentidentity::v1::ListAuthorizationsRequest request, + Options opts = {}); + + // clang-format off + /// + /// Gets details of a single Authorization. + /// + /// @param name Required. Name of the resource + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.Authorization]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.Authorization]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L598} + /// [google.cloud.agentidentity.v1.GetAuthorizationRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L687} + /// + // clang-format on + StatusOr GetAuthorization( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Gets details of a single Authorization. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.GetAuthorizationRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.Authorization]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.Authorization]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L598} + /// [google.cloud.agentidentity.v1.GetAuthorizationRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L687} + /// + // clang-format on + StatusOr GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// Deletes a single Authorization. + /// + /// @param name Required. The name of the Authorization to delete. + /// Format: + /// projects/{project}/locations/{location}/authProviders/{auth_provider}/authorizations/{authorization} + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [`Status`] object. If the request failed, the + /// status contains the details of the failure. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.DeleteAuthorizationRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L698} + /// + // clang-format on + Status DeleteAuthorization(std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Deletes a single Authorization. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.DeleteAuthorizationRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [`Status`] object. If the request failed, the + /// status contains the details of the failure. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.DeleteAuthorizationRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L698} + /// + // clang-format on + Status DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// Lists AccessSummaries in a given project and location. + /// Supported Filters: + /// - `workload_id`: Filter by the SPIFFE ID of the agent. + /// Example: `workload_id="spiffe://example.com/ns/default/sa/my-agent"` + /// + /// @param parent Required. The parent resource where the search is performed. + /// Format: projects/{project}/locations/{location} + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.agentidentity.v1.AccessSummary], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AccessSummary]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L729} + /// [google.cloud.agentidentity.v1.ListAccessSummariesRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L790} + /// + // clang-format on + StreamRange + ListAccessSummaries(std::string const& parent, Options opts = {}); + + // clang-format off + /// + /// Lists AccessSummaries in a given project and location. + /// Supported Filters: + /// - `workload_id`: Filter by the SPIFFE ID of the agent. + /// Example: `workload_id="spiffe://example.com/ns/default/sa/my-agent"` + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.ListAccessSummariesRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.agentidentity.v1.AccessSummary], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AccessSummary]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L729} + /// [google.cloud.agentidentity.v1.ListAccessSummariesRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L790} + /// + // clang-format on + StreamRange + ListAccessSummaries( + google::cloud::agentidentity::v1::ListAccessSummariesRequest request, + Options opts = {}); + + // clang-format off + /// + /// Gets details of a single AccessSummary. + /// + /// @param name Required. Name of the resource + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AccessSummary]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AccessSummary]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L729} + /// [google.cloud.agentidentity.v1.GetAccessSummaryRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L834} + /// + // clang-format on + StatusOr GetAccessSummary( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Gets details of a single AccessSummary. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.GetAccessSummaryRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AccessSummary]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AccessSummary]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L729} + /// [google.cloud.agentidentity.v1.GetAccessSummaryRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L834} + /// + // clang-format on + StatusOr GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// Revokes all authorizations for a specific user on an AuthProvider. + /// This deletes all authorization records associated with the user and + /// AuthProvider, effectively revoking access across all agents. + /// + /// @param name Required. The resource name of the AuthProvider. + /// Format: + /// projects/{project}/locations/{location}/authProviders/{auth_provider} + /// @param user_id Required. The identity of the user to revoke authorization for. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.RevokeAuthorizationResponse]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.RevokeAuthorizationRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L917} + /// [google.cloud.agentidentity.v1.RevokeAuthorizationResponse]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L933} + /// + // clang-format on + StatusOr + RevokeAuthorization(std::string const& name, std::string const& user_id, + Options opts = {}); + + // clang-format off + /// + /// Revokes all authorizations for a specific user on an AuthProvider. + /// This deletes all authorization records associated with the user and + /// AuthProvider, effectively revoking access across all agents. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.RevokeAuthorizationRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.RevokeAuthorizationResponse]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.RevokeAuthorizationRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L917} + /// [google.cloud.agentidentity.v1.RevokeAuthorizationResponse]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L933} + /// + // clang-format on + StatusOr + RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// Enables a single AuthProvider. + /// + /// @param name Required. Name of the resource + /// Format: + /// projects/{project}/locations/{location}/authProviders/{auth_provider} + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.EnableAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L548} + /// + // clang-format on + StatusOr EnableAuthProvider( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Enables a single AuthProvider. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.EnableAuthProviderRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.EnableAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L548} + /// + // clang-format on + StatusOr EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// Disables a single AuthProvider. + /// + /// @param name Required. Name of the resource + /// Format: + /// projects/{project}/locations/{location}/authProviders/{auth_provider} + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.DisableAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L573} + /// + // clang-format on + StatusOr DisableAuthProvider( + std::string const& name, Options opts = {}); + + // clang-format off + /// + /// Disables a single AuthProvider. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.agentidentity.v1.DisableAuthProviderRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.agentidentity.v1.AuthProvider]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.agentidentity.v1.AuthProvider]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L206} + /// [google.cloud.agentidentity.v1.DisableAuthProviderRequest]: @googleapis_reference_link{google/cloud/agentidentity/v1/auth_provider_service.proto#L573} + /// + // clang-format on + StatusOr DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request, + Options opts = {}); + + // clang-format off + /// + /// Lists information about the supported locations for this service. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.location.ListLocationsRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return a [StreamRange](@ref google::cloud::StreamRange) + /// to iterate of the results. See the documentation of this type for + /// details. In brief, this class has `begin()` and `end()` member + /// functions returning a iterator class meeting the + /// [input iterator requirements]. The value type for this iterator is a + /// [`StatusOr`] as the iteration may fail even after some values are + /// retrieved successfully, for example, if there is a network disconnect. + /// An empty set of results does not indicate an error, it indicates + /// that there are no resources meeting the request criteria. + /// On a successful iteration the `StatusOr` contains elements of type + /// [google.cloud.location.Location], or rather, + /// the C++ class generated by Protobuf from that type. Please consult the + /// Protobuf documentation for details on the [Protobuf mapping rules]. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.location.ListLocationsRequest]: @googleapis_reference_link{google/cloud/location/locations.proto#L58} + /// [google.cloud.location.Location]: @googleapis_reference_link{google/cloud/location/locations.proto#L88} + /// + // clang-format on + StreamRange ListLocations( + google::cloud::location::ListLocationsRequest request, Options opts = {}); + + // clang-format off + /// + /// Gets information about a location. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.cloud.location.GetLocationRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.cloud.location.Location]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.cloud.location.GetLocationRequest]: @googleapis_reference_link{google/cloud/location/locations.proto#L82} + /// [google.cloud.location.Location]: @googleapis_reference_link{google/cloud/location/locations.proto#L88} + /// + // clang-format on + StatusOr GetLocation( + google::cloud::location::GetLocationRequest const& request, + Options opts = {}); + + // clang-format off + /// + /// Sets the access control policy on the specified resource. Replaces any + /// existing policy. + /// + /// Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.iam.v1.SetIamPolicyRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.iam.v1.Policy]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.iam.v1.Policy]: @googleapis_reference_link{google/iam/v1/policy.proto#L102} + /// [google.iam.v1.SetIamPolicyRequest]: @googleapis_reference_link{google/iam/v1/iam_policy.proto#L100} + /// + // clang-format on + StatusOr SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const& request, Options opts = {}); + + // clang-format off + /// + /// Gets the access control policy for a resource. + /// Returns an empty policy if the resource exists and does not have a policy + /// set. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.iam.v1.GetIamPolicyRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.iam.v1.Policy]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.iam.v1.GetIamPolicyRequest]: @googleapis_reference_link{google/iam/v1/iam_policy.proto#L123} + /// [google.iam.v1.Policy]: @googleapis_reference_link{google/iam/v1/policy.proto#L102} + /// + // clang-format on + StatusOr GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const& request, Options opts = {}); + + // clang-format off + /// + /// 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. + /// + /// @param request Unary RPCs, such as the one wrapped by this + /// function, receive a single `request` proto message which includes all + /// the inputs for the RPC. In this case, the proto message is a + /// [google.iam.v1.TestIamPermissionsRequest]. + /// Proto messages are converted to C++ classes by Protobuf, using the + /// [Protobuf mapping rules]. + /// @param opts Optional. Override the class-level options, such as retry and + /// backoff policies. + /// @return the result of the RPC. The response message type + /// ([google.iam.v1.TestIamPermissionsResponse]) + /// is mapped to a C++ class using the [Protobuf mapping rules]. + /// If the request fails, the [`StatusOr`] contains the error details. + /// + /// [Protobuf mapping rules]: https://protobuf.dev/reference/cpp/cpp-generated/ + /// [input iterator requirements]: https://en.cppreference.com/w/cpp/named_req/InputIterator + /// [`std::string`]: https://en.cppreference.com/w/cpp/string/basic_string + /// [`future`]: @ref google::cloud::future + /// [`StatusOr`]: @ref google::cloud::StatusOr + /// [`Status`]: @ref google::cloud::Status + /// [google.iam.v1.TestIamPermissionsRequest]: @googleapis_reference_link{google/iam/v1/iam_policy.proto#L137} + /// [google.iam.v1.TestIamPermissionsResponse]: @googleapis_reference_link{google/iam/v1/iam_policy.proto#L153} + /// + // clang-format on + StatusOr TestIamPermissions( + google::iam::v1::TestIamPermissionsRequest const& request, + Options opts = {}); + + private: + std::shared_ptr connection_; + Options options_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_CLIENT_H diff --git a/google/cloud/agentidentity/v1/auth_provider_connection.cc b/google/cloud/agentidentity/v1/auth_provider_connection.cc new file mode 100644 index 0000000000000..4baceae45f5f0 --- /dev/null +++ b/google/cloud/agentidentity/v1/auth_provider_connection.cc @@ -0,0 +1,194 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/auth_provider_connection.h" +#include "google/cloud/agentidentity/v1/auth_provider_options.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.h" +#include "google/cloud/background_threads.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/grpc_options.h" +#include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/unified_grpc_credentials.h" +#include +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +AuthProviderServiceConnection::~AuthProviderServiceConnection() = default; + +StreamRange +AuthProviderServiceConnection::ListAuthProviders( + google::cloud::agentidentity::v1:: + ListAuthProvidersRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StatusOr +AuthProviderServiceConnection::GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StatusOr +AuthProviderServiceConnection::CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StatusOr +AuthProviderServiceConnection::UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +Status AuthProviderServiceConnection::DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StatusOr +AuthProviderServiceConnection::UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StreamRange AuthProviderServiceConnection::QueryAuthProviders( + google::cloud::agentidentity::v1:: + QueryAuthProvidersRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StreamRange AuthProviderServiceConnection::QueryWorkloads( + google::cloud::agentidentity::v1:: + QueryWorkloadsRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StreamRange +AuthProviderServiceConnection::ListAuthorizations( + google::cloud::agentidentity::v1:: + ListAuthorizationsRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StatusOr +AuthProviderServiceConnection::GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +Status AuthProviderServiceConnection::DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StreamRange +AuthProviderServiceConnection::ListAccessSummaries( + google::cloud::agentidentity::v1:: + ListAccessSummariesRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StatusOr +AuthProviderServiceConnection::GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StatusOr +AuthProviderServiceConnection::RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StatusOr +AuthProviderServiceConnection::EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StatusOr +AuthProviderServiceConnection::DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StreamRange +AuthProviderServiceConnection::ListLocations( + google::cloud::location:: + ListLocationsRequest) { // NOLINT(performance-unnecessary-value-param) + return google::cloud::internal::MakeUnimplementedPaginationRange< + StreamRange>(); +} + +StatusOr +AuthProviderServiceConnection::GetLocation( + google::cloud::location::GetLocationRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StatusOr AuthProviderServiceConnection::SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StatusOr AuthProviderServiceConnection::GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +StatusOr +AuthProviderServiceConnection::TestIamPermissions( + google::iam::v1::TestIamPermissionsRequest const&) { + return Status(StatusCode::kUnimplemented, "not implemented"); +} + +std::shared_ptr +MakeAuthProviderServiceConnection(Options options) { + internal::CheckExpectedOptions(options, + __func__); + options = agentidentity_v1_internal::AuthProviderServiceDefaultOptions( + std::move(options)); + auto background = internal::MakeBackgroundThreadsFactory(options)(); + auto auth = internal::CreateAuthenticationStrategy(background->cq(), options); + auto stub = agentidentity_v1_internal::CreateDefaultAuthProviderServiceStub( + std::move(auth), options); + return agentidentity_v1_internal::MakeAuthProviderServiceTracingConnection( + std::make_shared< + agentidentity_v1_internal::AuthProviderServiceConnectionImpl>( + std::move(background), std::move(stub), std::move(options))); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/agentidentity/v1/auth_provider_connection.h b/google/cloud/agentidentity/v1/auth_provider_connection.h new file mode 100644 index 0000000000000..5ee13a8924607 --- /dev/null +++ b/google/cloud/agentidentity/v1/auth_provider_connection.h @@ -0,0 +1,304 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_CONNECTION_H + +#include "google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.h" +#include "google/cloud/agentidentity/v1/auth_provider_service.pb.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_retry_traits.h" +#include "google/cloud/backoff_policy.h" +#include "google/cloud/internal/retry_policy_impl.h" +#include "google/cloud/options.h" +#include "google/cloud/status_or.h" +#include "google/cloud/stream_range.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/// The retry policy for `AuthProviderServiceConnection`. +class AuthProviderServiceRetryPolicy : public ::google::cloud::RetryPolicy { + public: + /// Creates a new instance of the policy, reset to the initial state. + virtual std::unique_ptr clone() const = 0; +}; + +/** + * A retry policy for `AuthProviderServiceConnection` based on counting errors. + * + * This policy stops retrying if: + * - An RPC returns a non-transient error. + * - More than a prescribed number of transient failures is detected. + * + * In this class the following status codes are treated as transient errors: + * - [`kUnavailable`](@ref google::cloud::StatusCode) + */ +class AuthProviderServiceLimitedErrorCountRetryPolicy + : public AuthProviderServiceRetryPolicy { + public: + /** + * Create an instance that tolerates up to @p maximum_failures transient + * errors. + * + * @note Disable the retry loop by providing an instance of this policy with + * @p maximum_failures == 0. + */ + explicit AuthProviderServiceLimitedErrorCountRetryPolicy(int maximum_failures) + : impl_(maximum_failures) {} + + AuthProviderServiceLimitedErrorCountRetryPolicy( + AuthProviderServiceLimitedErrorCountRetryPolicy&& rhs) noexcept + : AuthProviderServiceLimitedErrorCountRetryPolicy( + rhs.maximum_failures()) {} + AuthProviderServiceLimitedErrorCountRetryPolicy( + AuthProviderServiceLimitedErrorCountRetryPolicy const& rhs) noexcept + : AuthProviderServiceLimitedErrorCountRetryPolicy( + rhs.maximum_failures()) {} + + int maximum_failures() const { return impl_.maximum_failures(); } + + bool OnFailure(Status const& status) override { + return impl_.OnFailure(status); + } + bool IsExhausted() const override { return impl_.IsExhausted(); } + bool IsPermanentFailure(Status const& status) const override { + return impl_.IsPermanentFailure(status); + } + std::unique_ptr clone() const override { + return std::make_unique( + maximum_failures()); + } + + // This is provided only for backwards compatibility. + using BaseType = AuthProviderServiceRetryPolicy; + + private: + google::cloud::internal::LimitedErrorCountRetryPolicy< + agentidentity_v1_internal::AuthProviderServiceRetryTraits> + impl_; +}; + +/** + * A retry policy for `AuthProviderServiceConnection` based on elapsed time. + * + * This policy stops retrying if: + * - An RPC returns a non-transient error. + * - The elapsed time in the retry loop exceeds a prescribed duration. + * + * In this class the following status codes are treated as transient errors: + * - [`kUnavailable`](@ref google::cloud::StatusCode) + */ +class AuthProviderServiceLimitedTimeRetryPolicy + : public AuthProviderServiceRetryPolicy { + public: + /** + * Constructor given a `std::chrono::duration<>` object. + * + * @tparam DurationRep a placeholder to match the `Rep` tparam for @p + * duration's type. The semantics of this template parameter are + * documented in `std::chrono::duration<>`. In brief, the underlying + * arithmetic type used to store the number of ticks. For our purposes it + * is simply a formal parameter. + * @tparam DurationPeriod a placeholder to match the `Period` tparam for @p + * duration's type. The semantics of this template parameter are + * documented in `std::chrono::duration<>`. In brief, the length of the + * tick in seconds, expressed as a `std::ratio<>`. For our purposes it is + * simply a formal parameter. + * @param maximum_duration the maximum time allowed before the policy expires. + * While the application can express this time in any units they desire, + * the class truncates to milliseconds. + * + * @see https://en.cppreference.com/w/cpp/chrono/duration for more information + * about `std::chrono::duration`. + */ + template + explicit AuthProviderServiceLimitedTimeRetryPolicy( + std::chrono::duration maximum_duration) + : impl_(maximum_duration) {} + + AuthProviderServiceLimitedTimeRetryPolicy( + AuthProviderServiceLimitedTimeRetryPolicy&& rhs) noexcept + : AuthProviderServiceLimitedTimeRetryPolicy(rhs.maximum_duration()) {} + AuthProviderServiceLimitedTimeRetryPolicy( + AuthProviderServiceLimitedTimeRetryPolicy const& rhs) noexcept + : AuthProviderServiceLimitedTimeRetryPolicy(rhs.maximum_duration()) {} + + std::chrono::milliseconds maximum_duration() const { + return impl_.maximum_duration(); + } + + bool OnFailure(Status const& status) override { + return impl_.OnFailure(status); + } + bool IsExhausted() const override { return impl_.IsExhausted(); } + bool IsPermanentFailure(Status const& status) const override { + return impl_.IsPermanentFailure(status); + } + std::unique_ptr clone() const override { + return std::make_unique( + maximum_duration()); + } + + // This is provided only for backwards compatibility. + using BaseType = AuthProviderServiceRetryPolicy; + + private: + google::cloud::internal::LimitedTimeRetryPolicy< + agentidentity_v1_internal::AuthProviderServiceRetryTraits> + impl_; +}; + +/** + * The `AuthProviderServiceConnection` object for `AuthProviderServiceClient`. + * + * This interface defines virtual methods for each of the user-facing overload + * sets in `AuthProviderServiceClient`. This allows users to inject custom + * behavior (e.g., with a Google Mock object) when writing tests that use + * objects of type `AuthProviderServiceClient`. + * + * To create a concrete instance, see `MakeAuthProviderServiceConnection()`. + * + * For mocking, see `agentidentity_v1_mocks::MockAuthProviderServiceConnection`. + */ +class AuthProviderServiceConnection { + public: + virtual ~AuthProviderServiceConnection() = 0; + + virtual Options options() { return Options{}; } + + virtual StreamRange + ListAuthProviders( + google::cloud::agentidentity::v1::ListAuthProvidersRequest request); + + virtual StatusOr + GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request); + + virtual StatusOr + CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request); + + virtual StatusOr + UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request); + + virtual Status DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request); + + virtual StatusOr + UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request); + + virtual StreamRange QueryAuthProviders( + google::cloud::agentidentity::v1::QueryAuthProvidersRequest request); + + virtual StreamRange QueryWorkloads( + google::cloud::agentidentity::v1::QueryWorkloadsRequest request); + + virtual StreamRange + ListAuthorizations( + google::cloud::agentidentity::v1::ListAuthorizationsRequest request); + + virtual StatusOr + GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request); + + virtual Status DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request); + + virtual StreamRange + ListAccessSummaries( + google::cloud::agentidentity::v1::ListAccessSummariesRequest request); + + virtual StatusOr + GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request); + + virtual StatusOr< + google::cloud::agentidentity::v1::RevokeAuthorizationResponse> + RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request); + + virtual StatusOr + EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request); + + virtual StatusOr + DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request); + + virtual StreamRange ListLocations( + google::cloud::location::ListLocationsRequest request); + + virtual StatusOr GetLocation( + google::cloud::location::GetLocationRequest const& request); + + virtual StatusOr SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const& request); + + virtual StatusOr GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const& request); + + virtual StatusOr + TestIamPermissions(google::iam::v1::TestIamPermissionsRequest const& request); +}; + +/** + * A factory function to construct an object of type + * `AuthProviderServiceConnection`. + * + * The returned connection object should not be used directly; instead it + * should be passed as an argument to the constructor of + * AuthProviderServiceClient. + * + * The optional @p options argument may be used to configure aspects of the + * returned `AuthProviderServiceConnection`. Expected options are any of the + * types in the following option lists: + * + * - `google::cloud::CommonOptionList` + * - `google::cloud::GrpcOptionList` + * - `google::cloud::UnifiedCredentialsOptionList` + * - `google::cloud::agentidentity_v1::AuthProviderServicePolicyOptionList` + * + * @note Unexpected options will be ignored. To log unexpected options instead, + * set `GOOGLE_CLOUD_CPP_ENABLE_CLOG=yes` in the environment. + * + * @param options (optional) Configure the `AuthProviderServiceConnection` + * created by this function. + */ +std::shared_ptr +MakeAuthProviderServiceConnection(Options options = {}); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_CONNECTION_H diff --git a/google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.cc b/google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.cc new file mode 100644 index 0000000000000..f052318dafe05 --- /dev/null +++ b/google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.cc @@ -0,0 +1,153 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.h" +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +using ::google::cloud::Idempotency; + +AuthProviderServiceConnectionIdempotencyPolicy:: + ~AuthProviderServiceConnectionIdempotencyPolicy() = default; + +std::unique_ptr +AuthProviderServiceConnectionIdempotencyPolicy::clone() const { + return std::make_unique( + *this); +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::ListAuthProviders( + google::cloud::agentidentity::v1::ListAuthProvidersRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency +AuthProviderServiceConnectionIdempotencyPolicy::UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::QueryAuthProviders( + google::cloud::agentidentity::v1::QueryAuthProvidersRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::QueryWorkloads( + google::cloud::agentidentity::v1::QueryWorkloadsRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::ListAuthorizations( + google::cloud::agentidentity::v1::ListAuthorizationsRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::ListAccessSummaries( + google::cloud::agentidentity::v1::ListAccessSummariesRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const&) { + return Idempotency::kNonIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::ListLocations( + google::cloud::location::ListLocationsRequest) { // NOLINT + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::GetLocation( + google::cloud::location::GetLocationRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const& request) { + return request.policy().etag().empty() ? Idempotency::kNonIdempotent + : Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const&) { + return Idempotency::kIdempotent; +} + +Idempotency AuthProviderServiceConnectionIdempotencyPolicy::TestIamPermissions( + google::iam::v1::TestIamPermissionsRequest const&) { + return Idempotency::kIdempotent; +} + +std::unique_ptr +MakeDefaultAuthProviderServiceConnectionIdempotencyPolicy() { + return std::make_unique(); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1 +} // namespace cloud +} // namespace google diff --git a/google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.h b/google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.h new file mode 100644 index 0000000000000..ce9ed6b051589 --- /dev/null +++ b/google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.h @@ -0,0 +1,122 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_CONNECTION_IDEMPOTENCY_POLICY_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_CONNECTION_IDEMPOTENCY_POLICY_H + +#include "google/cloud/agentidentity/v1/auth_provider_service.grpc.pb.h" +#include "google/cloud/location/locations.grpc.pb.h" +#include "google/cloud/idempotency.h" +#include "google/cloud/version.h" +#include "google/iam/v1/iam_policy.grpc.pb.h" +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class AuthProviderServiceConnectionIdempotencyPolicy { + public: + virtual ~AuthProviderServiceConnectionIdempotencyPolicy(); + + /// Create a new copy of this object. + virtual std::unique_ptr + clone() const; + + virtual google::cloud::Idempotency ListAuthProviders( + google::cloud::agentidentity::v1::ListAuthProvidersRequest request); + + virtual google::cloud::Idempotency GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request); + + virtual google::cloud::Idempotency CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request); + + virtual google::cloud::Idempotency UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request); + + virtual google::cloud::Idempotency DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request); + + virtual google::cloud::Idempotency UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request); + + virtual google::cloud::Idempotency QueryAuthProviders( + google::cloud::agentidentity::v1::QueryAuthProvidersRequest request); + + virtual google::cloud::Idempotency QueryWorkloads( + google::cloud::agentidentity::v1::QueryWorkloadsRequest request); + + virtual google::cloud::Idempotency ListAuthorizations( + google::cloud::agentidentity::v1::ListAuthorizationsRequest request); + + virtual google::cloud::Idempotency GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request); + + virtual google::cloud::Idempotency DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request); + + virtual google::cloud::Idempotency ListAccessSummaries( + google::cloud::agentidentity::v1::ListAccessSummariesRequest request); + + virtual google::cloud::Idempotency GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request); + + virtual google::cloud::Idempotency RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request); + + virtual google::cloud::Idempotency EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request); + + virtual google::cloud::Idempotency DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request); + + virtual google::cloud::Idempotency ListLocations( + google::cloud::location::ListLocationsRequest request); + + virtual google::cloud::Idempotency GetLocation( + google::cloud::location::GetLocationRequest const& request); + + virtual google::cloud::Idempotency SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const& request); + + virtual google::cloud::Idempotency GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const& request); + + virtual google::cloud::Idempotency TestIamPermissions( + google::iam::v1::TestIamPermissionsRequest const& request); +}; + +std::unique_ptr +MakeDefaultAuthProviderServiceConnectionIdempotencyPolicy(); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_CONNECTION_IDEMPOTENCY_POLICY_H diff --git a/google/cloud/agentidentity/v1/auth_provider_options.h b/google/cloud/agentidentity/v1/auth_provider_options.h new file mode 100644 index 0000000000000..27fabf358d607 --- /dev/null +++ b/google/cloud/agentidentity/v1/auth_provider_options.h @@ -0,0 +1,76 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_OPTIONS_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_OPTIONS_H + +#include "google/cloud/agentidentity/v1/auth_provider_connection.h" +#include "google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.h" +#include "google/cloud/backoff_policy.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1 { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/** + * Use with `google::cloud::Options` to configure the retry policy. + * + * @ingroup google-cloud-agentidentity-options + */ +struct AuthProviderServiceRetryPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * Use with `google::cloud::Options` to configure the backoff policy. + * + * @ingroup google-cloud-agentidentity-options + */ +struct AuthProviderServiceBackoffPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * Use with `google::cloud::Options` to configure which operations are retried. + * + * @ingroup google-cloud-agentidentity-options + */ +struct AuthProviderServiceConnectionIdempotencyPolicyOption { + using Type = std::shared_ptr; +}; + +/** + * The options applicable to AuthProviderService. + * + * @ingroup google-cloud-agentidentity-options + */ +using AuthProviderServicePolicyOptionList = + OptionList; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1 +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_AUTH_PROVIDER_OPTIONS_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.cc b/google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.cc new file mode 100644 index 0000000000000..63bcebe0c0ef0 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.cc @@ -0,0 +1,238 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.h" +#include "google/cloud/agentidentity/v1/auth_provider_service.grpc.pb.h" +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +AuthProviderServiceAuth::AuthProviderServiceAuth( + std::shared_ptr auth, + std::shared_ptr child) + : auth_(std::move(auth)), child_(std::move(child)) {} + +StatusOr +AuthProviderServiceAuth::ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->ListAuthProviders(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->GetAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->CreateAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->UpdateAuthProvider(context, options, request); +} + +Status AuthProviderServiceAuth::DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->DeleteAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->UndeleteAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->QueryAuthProviders(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::QueryWorkloads( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->QueryWorkloads(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->ListAuthorizations(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->GetAuthorization(context, options, request); +} + +Status AuthProviderServiceAuth::DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->DeleteAuthorization(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->ListAccessSummaries(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->GetAccessSummary(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->RevokeAuthorization(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->EnableAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->DisableAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->ListLocations(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->GetLocation(context, options, request); +} + +StatusOr AuthProviderServiceAuth::SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->SetIamPolicy(context, options, request); +} + +StatusOr AuthProviderServiceAuth::GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->GetIamPolicy(context, options, request); +} + +StatusOr +AuthProviderServiceAuth::TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) { + auto status = auth_->ConfigureContext(context); + if (!status.ok()) return status; + return child_->TestIamPermissions(context, options, request); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.h b/google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.h new file mode 100644 index 0000000000000..d11a1161cd26c --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.h @@ -0,0 +1,161 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_AUTH_DECORATOR_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_AUTH_DECORATOR_H + +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub.h" +#include "google/cloud/internal/unified_grpc_credentials.h" +#include "google/cloud/version.h" +#include +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class AuthProviderServiceAuth : public AuthProviderServiceStub { + public: + ~AuthProviderServiceAuth() override = default; + AuthProviderServiceAuth( + std::shared_ptr auth, + std::shared_ptr child); + + StatusOr + ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) + override; + + StatusOr GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) + override; + + StatusOr CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) override; + + StatusOr UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) override; + + Status DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) override; + + StatusOr UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) override; + + StatusOr + QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) override; + + StatusOr + QueryWorkloads(grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& + request) override; + + StatusOr + ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) override; + + StatusOr GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) + override; + + Status DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) override; + + StatusOr + ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) override; + + StatusOr GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) + override; + + StatusOr + RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) override; + + StatusOr EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) override; + + StatusOr DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) override; + + StatusOr ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) override; + + StatusOr GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) override; + + StatusOr GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) override; + + StatusOr TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) override; + + private: + std::shared_ptr auth_; + std::shared_ptr child_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_AUTH_DECORATOR_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.cc b/google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.cc new file mode 100644 index 0000000000000..ad82f11e813c5 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.cc @@ -0,0 +1,506 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.h" +#include "google/cloud/background_threads.h" +#include "google/cloud/common_options.h" +#include "google/cloud/grpc_options.h" +#include "google/cloud/internal/pagination_range.h" +#include "google/cloud/internal/retry_loop.h" +#include +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN +namespace { + +std::unique_ptr retry_policy( + Options const& options) { + return options.get() + ->clone(); +} + +std::unique_ptr backoff_policy(Options const& options) { + return options + .get() + ->clone(); +} + +std::unique_ptr< + agentidentity_v1::AuthProviderServiceConnectionIdempotencyPolicy> +idempotency_policy(Options const& options) { + return options + .get() + ->clone(); +} + +} // namespace + +AuthProviderServiceConnectionImpl::AuthProviderServiceConnectionImpl( + std::unique_ptr background, + std::shared_ptr stub, + Options options) + : background_(std::move(background)), + stub_(std::move(stub)), + options_(internal::MergeOptions( + std::move(options), AuthProviderServiceConnection::options())) {} + +StreamRange +AuthProviderServiceConnectionImpl::ListAuthProviders( + google::cloud::agentidentity::v1::ListAuthProvidersRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListAuthProviders(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& r) { + return google::cloud::internal::RetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1:: + ListAuthProvidersRequest const& request) { + return stub->ListAuthProviders(context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::agentidentity::v1::ListAuthProvidersResponse r) { + std::vector result( + r.auth_providers().size()); + auto& messages = *r.mutable_auth_providers(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StatusOr +AuthProviderServiceConnectionImpl::GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetAuthProvider(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& + request) { + return stub_->GetAuthProvider(context, options, request); + }, + *current, request, __func__); +} + +StatusOr +AuthProviderServiceConnectionImpl::CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->CreateAuthProvider(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) { + return stub_->CreateAuthProvider(context, options, request); + }, + *current, request, __func__); +} + +StatusOr +AuthProviderServiceConnectionImpl::UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UpdateAuthProvider(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) { + return stub_->UpdateAuthProvider(context, options, request); + }, + *current, request, __func__); +} + +Status AuthProviderServiceConnectionImpl::DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAuthProvider(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) { + return stub_->DeleteAuthProvider(context, options, request); + }, + *current, request, __func__); +} + +StatusOr +AuthProviderServiceConnectionImpl::UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->UndeleteAuthProvider(request), + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) { + return stub_->UndeleteAuthProvider(context, options, request); + }, + *current, request, __func__); +} + +StreamRange AuthProviderServiceConnectionImpl::QueryAuthProviders( + google::cloud::agentidentity::v1::QueryAuthProvidersRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->QueryAuthProviders(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + r) { + return google::cloud::internal::RetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1:: + QueryAuthProvidersRequest const& request) { + return stub->QueryAuthProviders(context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::agentidentity::v1::QueryAuthProvidersResponse r) { + std::vector result(r.auth_provider_names().size()); + auto& messages = *r.mutable_auth_provider_names(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StreamRange AuthProviderServiceConnectionImpl::QueryWorkloads( + google::cloud::agentidentity::v1::QueryWorkloadsRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->QueryWorkloads(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& r) { + return google::cloud::internal::RetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub]( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& + request) { + return stub->QueryWorkloads(context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::agentidentity::v1::QueryWorkloadsResponse r) { + std::vector result(r.workload_ids().size()); + auto& messages = *r.mutable_workload_ids(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StreamRange +AuthProviderServiceConnectionImpl::ListAuthorizations( + google::cloud::agentidentity::v1::ListAuthorizationsRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListAuthorizations(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + r) { + return google::cloud::internal::RetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1:: + ListAuthorizationsRequest const& request) { + return stub->ListAuthorizations(context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::agentidentity::v1::ListAuthorizationsResponse r) { + std::vector result( + r.authorizations().size()); + auto& messages = *r.mutable_authorizations(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StatusOr +AuthProviderServiceConnectionImpl::GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetAuthorization(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& + request) { + return stub_->GetAuthorization(context, options, request); + }, + *current, request, __func__); +} + +Status AuthProviderServiceConnectionImpl::DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DeleteAuthorization(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) { + return stub_->DeleteAuthorization(context, options, request); + }, + *current, request, __func__); +} + +StreamRange +AuthProviderServiceConnectionImpl::ListAccessSummaries( + google::cloud::agentidentity::v1::ListAccessSummariesRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListAccessSummaries(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + r) { + return google::cloud::internal::RetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1:: + ListAccessSummariesRequest const& request) { + return stub->ListAccessSummaries(context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::agentidentity::v1::ListAccessSummariesResponse r) { + std::vector result( + r.access_summaries().size()); + auto& messages = *r.mutable_access_summaries(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StatusOr +AuthProviderServiceConnectionImpl::GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetAccessSummary(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& + request) { + return stub_->GetAccessSummary(context, options, request); + }, + *current, request, __func__); +} + +StatusOr +AuthProviderServiceConnectionImpl::RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->RevokeAuthorization(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) { + return stub_->RevokeAuthorization(context, options, request); + }, + *current, request, __func__); +} + +StatusOr +AuthProviderServiceConnectionImpl::EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->EnableAuthProvider(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) { + return stub_->EnableAuthProvider(context, options, request); + }, + *current, request, __func__); +} + +StatusOr +AuthProviderServiceConnectionImpl::DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->DisableAuthProvider(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) { + return stub_->DisableAuthProvider(context, options, request); + }, + *current, request, __func__); +} + +StreamRange +AuthProviderServiceConnectionImpl::ListLocations( + google::cloud::location::ListLocationsRequest request) { + request.clear_page_token(); + auto current = google::cloud::internal::SaveCurrentOptions(); + auto idempotency = idempotency_policy(*current)->ListLocations(request); + char const* function_name = __func__; + return google::cloud::internal::MakePaginationRange< + StreamRange>( + current, std::move(request), + [idempotency, function_name, stub = stub_, + retry = + std::shared_ptr( + retry_policy(*current)), + backoff = std::shared_ptr(backoff_policy(*current))]( + Options const& options, + google::cloud::location::ListLocationsRequest const& r) { + return google::cloud::internal::RetryLoop( + retry->clone(), backoff->clone(), idempotency, + [stub]( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + return stub->ListLocations(context, options, request); + }, + options, r, function_name); + }, + [](google::cloud::location::ListLocationsResponse r) { + std::vector result( + r.locations().size()); + auto& messages = *r.mutable_locations(); + std::move(messages.begin(), messages.end(), result.begin()); + return result; + }); +} + +StatusOr +AuthProviderServiceConnectionImpl::GetLocation( + google::cloud::location::GetLocationRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetLocation(request), + [this](grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + return stub_->GetLocation(context, options, request); + }, + *current, request, __func__); +} + +StatusOr +AuthProviderServiceConnectionImpl::SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->SetIamPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) { + return stub_->SetIamPolicy(context, options, request); + }, + *current, request, __func__); +} + +StatusOr +AuthProviderServiceConnectionImpl::GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->GetIamPolicy(request), + [this](grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) { + return stub_->GetIamPolicy(context, options, request); + }, + *current, request, __func__); +} + +StatusOr +AuthProviderServiceConnectionImpl::TestIamPermissions( + google::iam::v1::TestIamPermissionsRequest const& request) { + auto current = google::cloud::internal::SaveCurrentOptions(); + return google::cloud::internal::RetryLoop( + retry_policy(*current), backoff_policy(*current), + idempotency_policy(*current)->TestIamPermissions(request), + [this](grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) { + return stub_->TestIamPermissions(context, options, request); + }, + *current, request, __func__); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.h b/google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.h new file mode 100644 index 0000000000000..a0c6630d4c2c0 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.h @@ -0,0 +1,143 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_CONNECTION_IMPL_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_CONNECTION_IMPL_H + +#include "google/cloud/agentidentity/v1/auth_provider_connection.h" +#include "google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.h" +#include "google/cloud/agentidentity/v1/auth_provider_options.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_retry_traits.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub.h" +#include "google/cloud/background_threads.h" +#include "google/cloud/backoff_policy.h" +#include "google/cloud/options.h" +#include "google/cloud/status_or.h" +#include "google/cloud/stream_range.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class AuthProviderServiceConnectionImpl + : public agentidentity_v1::AuthProviderServiceConnection { + public: + ~AuthProviderServiceConnectionImpl() override = default; + + AuthProviderServiceConnectionImpl( + std::unique_ptr background, + std::shared_ptr stub, + Options options); + + Options options() override { return options_; } + + StreamRange ListAuthProviders( + google::cloud::agentidentity::v1::ListAuthProvidersRequest request) + override; + + StatusOr GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) + override; + + StatusOr CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) override; + + StatusOr UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) override; + + Status DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) override; + + StatusOr UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) override; + + StreamRange QueryAuthProviders( + google::cloud::agentidentity::v1::QueryAuthProvidersRequest request) + override; + + StreamRange QueryWorkloads( + google::cloud::agentidentity::v1::QueryWorkloadsRequest request) override; + + StreamRange + ListAuthorizations(google::cloud::agentidentity::v1::ListAuthorizationsRequest + request) override; + + StatusOr GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) + override; + + Status DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) override; + + StreamRange + ListAccessSummaries( + google::cloud::agentidentity::v1::ListAccessSummariesRequest request) + override; + + StatusOr GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) + override; + + StatusOr + RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) override; + + StatusOr EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) override; + + StatusOr DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) override; + + StreamRange ListLocations( + google::cloud::location::ListLocationsRequest request) override; + + StatusOr GetLocation( + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const& request) override; + + StatusOr GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const& request) override; + + StatusOr TestIamPermissions( + google::iam::v1::TestIamPermissionsRequest const& request) override; + + private: + std::unique_ptr background_; + std::shared_ptr stub_; + Options options_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_CONNECTION_IMPL_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.cc b/google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.cc new file mode 100644 index 0000000000000..cf28bbdf9d006 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.cc @@ -0,0 +1,322 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.h" +#include "google/cloud/agentidentity/v1/auth_provider_service.grpc.pb.h" +#include "google/cloud/internal/log_wrapper.h" +#include "google/cloud/status_or.h" +#include +#include +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +AuthProviderServiceLogging::AuthProviderServiceLogging( + std::shared_ptr child, + TracingOptions tracing_options, std::set const&) + : child_(std::move(child)), tracing_options_(std::move(tracing_options)) {} + +StatusOr +AuthProviderServiceLogging::ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& + request) { + return child_->ListAuthProviders(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& + request) { + return child_->GetAuthProvider(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) { + return child_->CreateAuthProvider(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) { + return child_->UpdateAuthProvider(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +Status AuthProviderServiceLogging::DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) { + return child_->DeleteAuthProvider(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this]( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) { + return child_->UndeleteAuthProvider(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) { + return child_->QueryAuthProviders(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::QueryWorkloads( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& + request) { + return child_->QueryWorkloads(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) { + return child_->ListAuthorizations(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& + request) { + return child_->GetAuthorization(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +Status AuthProviderServiceLogging::DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) { + return child_->DeleteAuthorization(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) { + return child_->ListAccessSummaries(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& + request) { + return child_->GetAccessSummary(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) { + return child_->RevokeAuthorization(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) { + return child_->EnableAuthProvider(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) { + return child_->DisableAuthProvider(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + return child_->ListLocations(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + return child_->GetLocation(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr AuthProviderServiceLogging::SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) { + return child_->SetIamPolicy(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr AuthProviderServiceLogging::GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) { + return child_->GetIamPolicy(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +StatusOr +AuthProviderServiceLogging::TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) { + return google::cloud::internal::LogWrapper( + [this](grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) { + return child_->TestIamPermissions(context, options, request); + }, + context, options, request, __func__, tracing_options_); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.h b/google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.h new file mode 100644 index 0000000000000..fe6869655032a --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.h @@ -0,0 +1,161 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_LOGGING_DECORATOR_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_LOGGING_DECORATOR_H + +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub.h" +#include "google/cloud/tracing_options.h" +#include "google/cloud/version.h" +#include +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class AuthProviderServiceLogging : public AuthProviderServiceStub { + public: + ~AuthProviderServiceLogging() override = default; + AuthProviderServiceLogging(std::shared_ptr child, + TracingOptions tracing_options, + std::set const& components); + + StatusOr + ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) + override; + + StatusOr GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) + override; + + StatusOr CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) override; + + StatusOr UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) override; + + Status DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) override; + + StatusOr UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) override; + + StatusOr + QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) override; + + StatusOr + QueryWorkloads(grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& + request) override; + + StatusOr + ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) override; + + StatusOr GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) + override; + + Status DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) override; + + StatusOr + ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) override; + + StatusOr GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) + override; + + StatusOr + RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) override; + + StatusOr EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) override; + + StatusOr DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) override; + + StatusOr ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) override; + + StatusOr GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) override; + + StatusOr GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) override; + + StatusOr TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) override; + + private: + std::shared_ptr child_; + TracingOptions tracing_options_; +}; // AuthProviderServiceLogging + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_LOGGING_DECORATOR_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.cc b/google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.cc new file mode 100644 index 0000000000000..aa162f667b675 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.cc @@ -0,0 +1,270 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.h" +#include "google/cloud/agentidentity/v1/auth_provider_service.grpc.pb.h" +#include "google/cloud/grpc_options.h" +#include "google/cloud/internal/api_client_header.h" +#include "google/cloud/internal/url_encode.h" +#include "google/cloud/status_or.h" +#include "absl/strings/str_cat.h" +#include "absl/strings/str_join.h" +#include +#include +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +AuthProviderServiceMetadata::AuthProviderServiceMetadata( + std::shared_ptr child, + std::multimap fixed_metadata, + std::string api_client_header) + : child_(std::move(child)), + fixed_metadata_(std::move(fixed_metadata)), + api_client_header_( + api_client_header.empty() + ? google::cloud::internal::GeneratedLibClientHeader() + : std::move(api_client_header)) {} + +StatusOr +AuthProviderServiceMetadata::ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) { + SetMetadata(context, options, + absl::StrCat("parent=", internal::UrlEncode(request.parent()))); + return child_->ListAuthProviders(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->GetAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("parent=", internal::UrlEncode(request.parent()))); + return child_->CreateAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) { + SetMetadata( + context, options, + absl::StrCat("auth_provider.name=", + internal::UrlEncode(request.auth_provider().name()))); + return child_->UpdateAuthProvider(context, options, request); +} + +Status AuthProviderServiceMetadata::DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->DeleteAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->UndeleteAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("parent=", internal::UrlEncode(request.parent()))); + return child_->QueryAuthProviders(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::QueryWorkloads( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->QueryWorkloads(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("parent=", internal::UrlEncode(request.parent()))); + return child_->ListAuthorizations(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->GetAuthorization(context, options, request); +} + +Status AuthProviderServiceMetadata::DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->DeleteAuthorization(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("parent=", internal::UrlEncode(request.parent()))); + return child_->ListAccessSummaries(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->GetAccessSummary(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->RevokeAuthorization(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->EnableAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->DisableAuthProvider(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->ListLocations(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + SetMetadata(context, options, + absl::StrCat("name=", internal::UrlEncode(request.name()))); + return child_->GetLocation(context, options, request); +} + +StatusOr AuthProviderServiceMetadata::SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) { + SetMetadata( + context, options, + absl::StrCat("resource=", internal::UrlEncode(request.resource()))); + return child_->SetIamPolicy(context, options, request); +} + +StatusOr AuthProviderServiceMetadata::GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) { + SetMetadata( + context, options, + absl::StrCat("resource=", internal::UrlEncode(request.resource()))); + return child_->GetIamPolicy(context, options, request); +} + +StatusOr +AuthProviderServiceMetadata::TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) { + SetMetadata( + context, options, + absl::StrCat("resource=", internal::UrlEncode(request.resource()))); + return child_->TestIamPermissions(context, options, request); +} + +void AuthProviderServiceMetadata::SetMetadata( + grpc::ClientContext& context, Options const& options, + std::string const& request_params) { + context.AddMetadata("x-goog-request-params", request_params); + SetMetadata(context, options); +} + +void AuthProviderServiceMetadata::SetMetadata(grpc::ClientContext& context, + Options const& options) { + google::cloud::internal::SetMetadata(context, options, fixed_metadata_, + api_client_header_); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.h b/google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.h new file mode 100644 index 0000000000000..f79c19cfe0936 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.h @@ -0,0 +1,167 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_METADATA_DECORATOR_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_METADATA_DECORATOR_H + +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class AuthProviderServiceMetadata : public AuthProviderServiceStub { + public: + ~AuthProviderServiceMetadata() override = default; + AuthProviderServiceMetadata( + std::shared_ptr child, + std::multimap fixed_metadata, + std::string api_client_header = ""); + + StatusOr + ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) + override; + + StatusOr GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) + override; + + StatusOr CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) override; + + StatusOr UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) override; + + Status DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) override; + + StatusOr UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) override; + + StatusOr + QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) override; + + StatusOr + QueryWorkloads(grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& + request) override; + + StatusOr + ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) override; + + StatusOr GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) + override; + + Status DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) override; + + StatusOr + ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) override; + + StatusOr GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) + override; + + StatusOr + RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) override; + + StatusOr EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) override; + + StatusOr DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) override; + + StatusOr ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) override; + + StatusOr GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) override; + + StatusOr GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) override; + + StatusOr TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) override; + + private: + void SetMetadata(grpc::ClientContext& context, Options const& options, + std::string const& request_params); + void SetMetadata(grpc::ClientContext& context, Options const& options); + + std::shared_ptr child_; + std::multimap fixed_metadata_; + std::string api_client_header_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_METADATA_DECORATOR_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.cc b/google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.cc new file mode 100644 index 0000000000000..928e71943b178 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.cc @@ -0,0 +1,71 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.h" +#include "google/cloud/agentidentity/v1/auth_provider_connection.h" +#include "google/cloud/agentidentity/v1/auth_provider_options.h" +#include "google/cloud/internal/populate_common_options.h" +#include "google/cloud/internal/populate_grpc_options.h" +#include +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +namespace { +auto constexpr kBackoffScaling = 2.0; +} // namespace + +Options AuthProviderServiceDefaultOptions(Options options) { + options = internal::PopulateCommonOptions( + std::move(options), "GOOGLE_CLOUD_CPP_AUTH_PROVIDER_SERVICE_ENDPOINT", "", + "GOOGLE_CLOUD_CPP_AUTH_PROVIDER_SERVICE_AUTHORITY", + "agentidentity.googleapis.com"); + options = internal::PopulateGrpcOptions(std::move(options)); + if (!options.has()) { + options.set( + agentidentity_v1::AuthProviderServiceLimitedTimeRetryPolicy( + std::chrono::minutes(10)) + .clone()); + } + if (!options + .has()) { + options.set( + ExponentialBackoffPolicy( + std::chrono::seconds(0), std::chrono::seconds(1), + std::chrono::minutes(5), kBackoffScaling, kBackoffScaling) + .clone()); + } + if (!options + .has()) { + options.set< + agentidentity_v1::AuthProviderServiceConnectionIdempotencyPolicyOption>( + agentidentity_v1:: + MakeDefaultAuthProviderServiceConnectionIdempotencyPolicy()); + } + + return options; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.h b/google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.h new file mode 100644 index 0000000000000..940bb29fcc302 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.h @@ -0,0 +1,37 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_OPTION_DEFAULTS_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_OPTION_DEFAULTS_H + +#include "google/cloud/options.h" +#include "google/cloud/version.h" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +Options AuthProviderServiceDefaultOptions(Options options); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_OPTION_DEFAULTS_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_retry_traits.h b/google/cloud/agentidentity/v1/internal/auth_provider_retry_traits.h new file mode 100644 index 0000000000000..12d21117d71e0 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_retry_traits.h @@ -0,0 +1,43 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_RETRY_TRAITS_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_RETRY_TRAITS_H + +#include "google/cloud/status.h" +#include "google/cloud/version.h" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/// Define the gRPC status code semantics for retrying requests. +struct AuthProviderServiceRetryTraits { + static bool IsPermanentFailure(google::cloud::Status const& status) { + return status.code() != StatusCode::kOk && + status.code() != StatusCode::kUnavailable; + } +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_RETRY_TRAITS_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_sources.cc b/google/cloud/agentidentity/v1/internal/auth_provider_sources.cc new file mode 100644 index 0000000000000..b171d0d42e43f --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_sources.cc @@ -0,0 +1,32 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +// NOLINTBEGIN(bugprone-suspicious-include) +#include "google/cloud/agentidentity/v1/auth_provider_client.cc" +#include "google/cloud/agentidentity/v1/auth_provider_connection.cc" +#include "google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.cc" +#include "google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.cc" +#include "google/cloud/agentidentity/v1/internal/auth_provider_connection_impl.cc" +#include "google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.cc" +#include "google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.cc" +#include "google/cloud/agentidentity/v1/internal/auth_provider_option_defaults.cc" +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub.cc" +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.cc" +#include "google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.cc" +#include "google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.cc" +// NOLINTEND(bugprone-suspicious-include) diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_stub.cc b/google/cloud/agentidentity/v1/internal/auth_provider_stub.cc new file mode 100644 index 0000000000000..f9906c862ca79 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_stub.cc @@ -0,0 +1,301 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub.h" +#include "google/cloud/agentidentity/v1/auth_provider_service.grpc.pb.h" +#include "google/cloud/grpc_error_delegate.h" +#include "google/cloud/status_or.h" +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +AuthProviderServiceStub::~AuthProviderServiceStub() = default; + +StatusOr +DefaultAuthProviderServiceStub::ListAuthProviders( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) { + google::cloud::agentidentity::v1::ListAuthProvidersResponse response; + auto status = grpc_stub_->ListAuthProviders(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::GetAuthProvider( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) { + google::cloud::agentidentity::v1::AuthProvider response; + auto status = grpc_stub_->GetAuthProvider(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::CreateAuthProvider( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) { + google::cloud::agentidentity::v1::AuthProvider response; + auto status = grpc_stub_->CreateAuthProvider(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::UpdateAuthProvider( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) { + google::cloud::agentidentity::v1::AuthProvider response; + auto status = grpc_stub_->UpdateAuthProvider(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +Status DefaultAuthProviderServiceStub::DeleteAuthProvider( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) { + google::protobuf::Empty response; + auto status = grpc_stub_->DeleteAuthProvider(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return google::cloud::Status(); +} + +StatusOr +DefaultAuthProviderServiceStub::UndeleteAuthProvider( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) { + google::cloud::agentidentity::v1::AuthProvider response; + auto status = grpc_stub_->UndeleteAuthProvider(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::QueryAuthProviders( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) { + google::cloud::agentidentity::v1::QueryAuthProvidersResponse response; + auto status = grpc_stub_->QueryAuthProviders(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::QueryWorkloads( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& request) { + google::cloud::agentidentity::v1::QueryWorkloadsResponse response; + auto status = grpc_stub_->QueryWorkloads(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::ListAuthorizations( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) { + google::cloud::agentidentity::v1::ListAuthorizationsResponse response; + auto status = grpc_stub_->ListAuthorizations(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::GetAuthorization( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) { + google::cloud::agentidentity::v1::Authorization response; + auto status = grpc_stub_->GetAuthorization(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +Status DefaultAuthProviderServiceStub::DeleteAuthorization( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) { + google::protobuf::Empty response; + auto status = grpc_stub_->DeleteAuthorization(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return google::cloud::Status(); +} + +StatusOr +DefaultAuthProviderServiceStub::ListAccessSummaries( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) { + google::cloud::agentidentity::v1::ListAccessSummariesResponse response; + auto status = grpc_stub_->ListAccessSummaries(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::GetAccessSummary( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) { + google::cloud::agentidentity::v1::AccessSummary response; + auto status = grpc_stub_->GetAccessSummary(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::RevokeAuthorization( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) { + google::cloud::agentidentity::v1::RevokeAuthorizationResponse response; + auto status = grpc_stub_->RevokeAuthorization(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::EnableAuthProvider( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) { + google::cloud::agentidentity::v1::AuthProvider response; + auto status = grpc_stub_->EnableAuthProvider(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::DisableAuthProvider( + grpc::ClientContext& context, Options const&, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) { + google::cloud::agentidentity::v1::AuthProvider response; + auto status = grpc_stub_->DisableAuthProvider(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::ListLocations( + grpc::ClientContext& context, Options const&, + google::cloud::location::ListLocationsRequest const& request) { + google::cloud::location::ListLocationsResponse response; + auto status = locations_stub_->ListLocations(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::GetLocation( + grpc::ClientContext& context, Options const&, + google::cloud::location::GetLocationRequest const& request) { + google::cloud::location::Location response; + auto status = locations_stub_->GetLocation(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr DefaultAuthProviderServiceStub::SetIamPolicy( + grpc::ClientContext& context, Options const&, + google::iam::v1::SetIamPolicyRequest const& request) { + google::iam::v1::Policy response; + auto status = iampolicy_stub_->SetIamPolicy(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr DefaultAuthProviderServiceStub::GetIamPolicy( + grpc::ClientContext& context, Options const&, + google::iam::v1::GetIamPolicyRequest const& request) { + google::iam::v1::Policy response; + auto status = iampolicy_stub_->GetIamPolicy(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +StatusOr +DefaultAuthProviderServiceStub::TestIamPermissions( + grpc::ClientContext& context, Options const&, + google::iam::v1::TestIamPermissionsRequest const& request) { + google::iam::v1::TestIamPermissionsResponse response; + auto status = + iampolicy_stub_->TestIamPermissions(&context, request, &response); + if (!status.ok()) { + return google::cloud::MakeStatusFromRpcError(status); + } + return response; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_stub.h b/google/cloud/agentidentity/v1/internal/auth_provider_stub.h new file mode 100644 index 0000000000000..fce298a1eac99 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_stub.h @@ -0,0 +1,295 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_STUB_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_STUB_H + +#include "google/cloud/agentidentity/v1/auth_provider_service.grpc.pb.h" +#include "google/cloud/location/locations.grpc.pb.h" +#include "google/cloud/options.h" +#include "google/cloud/status_or.h" +#include "google/cloud/version.h" +#include "google/iam/v1/iam_policy.grpc.pb.h" +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class AuthProviderServiceStub { + public: + virtual ~AuthProviderServiceStub() = 0; + + virtual StatusOr + ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& + request) = 0; + + virtual StatusOr + GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& + request) = 0; + + virtual StatusOr + CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) = 0; + + virtual StatusOr + UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) = 0; + + virtual Status DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) = 0; + + virtual StatusOr + UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) = 0; + + virtual StatusOr + QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) = 0; + + virtual StatusOr + QueryWorkloads(grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& + request) = 0; + + virtual StatusOr + ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) = 0; + + virtual StatusOr + GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& + request) = 0; + + virtual Status DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) = 0; + + virtual StatusOr< + google::cloud::agentidentity::v1::ListAccessSummariesResponse> + ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) = 0; + + virtual StatusOr + GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& + request) = 0; + + virtual StatusOr< + google::cloud::agentidentity::v1::RevokeAuthorizationResponse> + RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) = 0; + + virtual StatusOr + EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) = 0; + + virtual StatusOr + DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) = 0; + + virtual StatusOr + ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) = 0; + + virtual StatusOr GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) = 0; + + virtual StatusOr SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) = 0; + + virtual StatusOr GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) = 0; + + virtual StatusOr + TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) = 0; +}; + +class DefaultAuthProviderServiceStub : public AuthProviderServiceStub { + public: + explicit DefaultAuthProviderServiceStub( + std::unique_ptr< + google::cloud::agentidentity::v1::AuthProviderService::StubInterface> + grpc_stub, + std::unique_ptr iampolicy_stub, + std::unique_ptr + locations_stub) + : grpc_stub_(std::move(grpc_stub)), + iampolicy_stub_(std::move(iampolicy_stub)), + locations_stub_(std::move(locations_stub)) {} + + StatusOr + ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) + override; + + StatusOr GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) + override; + + StatusOr CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) override; + + StatusOr UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) override; + + Status DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) override; + + StatusOr UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) override; + + StatusOr + QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) override; + + StatusOr + QueryWorkloads(grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& + request) override; + + StatusOr + ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) override; + + StatusOr GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) + override; + + Status DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) override; + + StatusOr + ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) override; + + StatusOr GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) + override; + + StatusOr + RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) override; + + StatusOr EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) override; + + StatusOr DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) override; + + StatusOr ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) override; + + StatusOr GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) override; + + StatusOr GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) override; + + StatusOr TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) override; + + private: + std::unique_ptr< + google::cloud::agentidentity::v1::AuthProviderService::StubInterface> + grpc_stub_; + std::unique_ptr iampolicy_stub_; + std::unique_ptr + locations_stub_; +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_STUB_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.cc b/google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.cc new file mode 100644 index 0000000000000..5b9a85fca9719 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.cc @@ -0,0 +1,83 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.h" +#include "google/cloud/agentidentity/v1/auth_provider_service.grpc.pb.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_auth_decorator.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_logging_decorator.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_metadata_decorator.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub.h" +#include "google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.h" +#include "google/cloud/location/locations.grpc.pb.h" +#include "google/cloud/common_options.h" +#include "google/cloud/grpc_options.h" +#include "google/cloud/internal/algorithm.h" +#include "google/cloud/internal/opentelemetry.h" +#include "google/cloud/log.h" +#include "google/cloud/options.h" +#include "google/iam/v1/iam_policy.grpc.pb.h" +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +std::shared_ptr CreateDefaultAuthProviderServiceStub( + std::shared_ptr auth, + Options const& options) { + auto channel = auth->CreateChannel(options.get(), + internal::MakeChannelArguments(options)); + auto service_grpc_stub = + google::cloud::agentidentity::v1::AuthProviderService::NewStub(channel); + auto service_iampolicy_stub = google::iam::v1::IAMPolicy::NewStub(channel); + auto service_locations_stub = + google::cloud::location::Locations::NewStub(channel); + std::shared_ptr stub = + std::make_shared( + std::move(service_grpc_stub), std::move(service_iampolicy_stub), + std::move(service_locations_stub)); + + if (auth->RequiresConfigureContext()) { + stub = std::make_shared(std::move(auth), + std::move(stub)); + } + stub = std::make_shared( + std::move(stub), std::multimap{}); + if (internal::Contains(options.get(), "rpc")) { + GCP_LOG(INFO) << "Enabled logging for gRPC calls"; + stub = std::make_shared( + std::move(stub), options.get(), + options.get()); + } + if (internal::TracingEnabled(options)) { + stub = MakeAuthProviderServiceTracingStub(std::move(stub)); + } + return stub; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.h b/google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.h new file mode 100644 index 0000000000000..d20c1da9c67e8 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_stub_factory.h @@ -0,0 +1,47 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_STUB_FACTORY_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_STUB_FACTORY_H + +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub.h" +#include "google/cloud/internal/unified_grpc_credentials.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +std::shared_ptr CreateDefaultAuthProviderServiceStub( + std::shared_ptr auth, + Options const& options); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_STUB_FACTORY_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.cc b/google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.cc new file mode 100644 index 0000000000000..9f672578a6283 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.cc @@ -0,0 +1,256 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.h" +#include "google/cloud/internal/opentelemetry.h" +#include "google/cloud/internal/traced_stream_range.h" +#include +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +AuthProviderServiceTracingConnection::AuthProviderServiceTracingConnection( + std::shared_ptr child) + : child_(std::move(child)) {} + +StreamRange +AuthProviderServiceTracingConnection::ListAuthProviders( + google::cloud::agentidentity::v1::ListAuthProvidersRequest request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::ListAuthProviders"); + internal::OTelScope scope(span); + auto sr = child_->ListAuthProviders(std::move(request)); + return internal::MakeTracedStreamRange< + google::cloud::agentidentity::v1::AuthProvider>(std::move(span), + std::move(sr)); +} + +StatusOr +AuthProviderServiceTracingConnection::GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::GetAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->GetAuthProvider(request)); +} + +StatusOr +AuthProviderServiceTracingConnection::CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::CreateAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->CreateAuthProvider(request)); +} + +StatusOr +AuthProviderServiceTracingConnection::UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::UpdateAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->UpdateAuthProvider(request)); +} + +Status AuthProviderServiceTracingConnection::DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::DeleteAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->DeleteAuthProvider(request)); +} + +StatusOr +AuthProviderServiceTracingConnection::UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::UndeleteAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->UndeleteAuthProvider(request)); +} + +StreamRange +AuthProviderServiceTracingConnection::QueryAuthProviders( + google::cloud::agentidentity::v1::QueryAuthProvidersRequest request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::QueryAuthProviders"); + internal::OTelScope scope(span); + auto sr = child_->QueryAuthProviders(std::move(request)); + return internal::MakeTracedStreamRange(std::move(span), + std::move(sr)); +} + +StreamRange AuthProviderServiceTracingConnection::QueryWorkloads( + google::cloud::agentidentity::v1::QueryWorkloadsRequest request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::QueryWorkloads"); + internal::OTelScope scope(span); + auto sr = child_->QueryWorkloads(std::move(request)); + return internal::MakeTracedStreamRange(std::move(span), + std::move(sr)); +} + +StreamRange +AuthProviderServiceTracingConnection::ListAuthorizations( + google::cloud::agentidentity::v1::ListAuthorizationsRequest request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::ListAuthorizations"); + internal::OTelScope scope(span); + auto sr = child_->ListAuthorizations(std::move(request)); + return internal::MakeTracedStreamRange< + google::cloud::agentidentity::v1::Authorization>(std::move(span), + std::move(sr)); +} + +StatusOr +AuthProviderServiceTracingConnection::GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::GetAuthorization"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->GetAuthorization(request)); +} + +Status AuthProviderServiceTracingConnection::DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::DeleteAuthorization"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->DeleteAuthorization(request)); +} + +StreamRange +AuthProviderServiceTracingConnection::ListAccessSummaries( + google::cloud::agentidentity::v1::ListAccessSummariesRequest request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::ListAccessSummaries"); + internal::OTelScope scope(span); + auto sr = child_->ListAccessSummaries(std::move(request)); + return internal::MakeTracedStreamRange< + google::cloud::agentidentity::v1::AccessSummary>(std::move(span), + std::move(sr)); +} + +StatusOr +AuthProviderServiceTracingConnection::GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::GetAccessSummary"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->GetAccessSummary(request)); +} + +StatusOr +AuthProviderServiceTracingConnection::RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::RevokeAuthorization"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->RevokeAuthorization(request)); +} + +StatusOr +AuthProviderServiceTracingConnection::EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::EnableAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->EnableAuthProvider(request)); +} + +StatusOr +AuthProviderServiceTracingConnection::DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::DisableAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->DisableAuthProvider(request)); +} + +StreamRange +AuthProviderServiceTracingConnection::ListLocations( + google::cloud::location::ListLocationsRequest request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::ListLocations"); + internal::OTelScope scope(span); + auto sr = child_->ListLocations(std::move(request)); + return internal::MakeTracedStreamRange( + std::move(span), std::move(sr)); +} + +StatusOr +AuthProviderServiceTracingConnection::GetLocation( + google::cloud::location::GetLocationRequest const& request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::GetLocation"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->GetLocation(request)); +} + +StatusOr +AuthProviderServiceTracingConnection::SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const& request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::SetIamPolicy"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->SetIamPolicy(request)); +} + +StatusOr +AuthProviderServiceTracingConnection::GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const& request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::GetIamPolicy"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->GetIamPolicy(request)); +} + +StatusOr +AuthProviderServiceTracingConnection::TestIamPermissions( + google::iam::v1::TestIamPermissionsRequest const& request) { + auto span = internal::MakeSpan( + "agentidentity_v1::AuthProviderServiceConnection::TestIamPermissions"); + auto scope = opentelemetry::trace::Scope(span); + return internal::EndSpan(*span, child_->TestIamPermissions(request)); +} + +std::shared_ptr +MakeAuthProviderServiceTracingConnection( + std::shared_ptr conn) { + if (internal::TracingEnabled(conn->options())) { + conn = + std::make_shared(std::move(conn)); + } + return conn; +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.h b/google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.h new file mode 100644 index 0000000000000..9d924cda4da92 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_tracing_connection.h @@ -0,0 +1,140 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_TRACING_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_TRACING_CONNECTION_H + +#include "google/cloud/agentidentity/v1/auth_provider_connection.h" +#include "google/cloud/version.h" +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class AuthProviderServiceTracingConnection + : public agentidentity_v1::AuthProviderServiceConnection { + public: + ~AuthProviderServiceTracingConnection() override = default; + + explicit AuthProviderServiceTracingConnection( + std::shared_ptr child); + + Options options() override { return child_->options(); } + + StreamRange ListAuthProviders( + google::cloud::agentidentity::v1::ListAuthProvidersRequest request) + override; + + StatusOr GetAuthProvider( + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) + override; + + StatusOr CreateAuthProvider( + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) override; + + StatusOr UpdateAuthProvider( + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) override; + + Status DeleteAuthProvider( + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) override; + + StatusOr UndeleteAuthProvider( + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) override; + + StreamRange QueryAuthProviders( + google::cloud::agentidentity::v1::QueryAuthProvidersRequest request) + override; + + StreamRange QueryWorkloads( + google::cloud::agentidentity::v1::QueryWorkloadsRequest request) override; + + StreamRange + ListAuthorizations(google::cloud::agentidentity::v1::ListAuthorizationsRequest + request) override; + + StatusOr GetAuthorization( + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) + override; + + Status DeleteAuthorization( + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) override; + + StreamRange + ListAccessSummaries( + google::cloud::agentidentity::v1::ListAccessSummariesRequest request) + override; + + StatusOr GetAccessSummary( + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) + override; + + StatusOr + RevokeAuthorization( + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) override; + + StatusOr EnableAuthProvider( + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) override; + + StatusOr DisableAuthProvider( + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) override; + + StreamRange ListLocations( + google::cloud::location::ListLocationsRequest request) override; + + StatusOr GetLocation( + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr SetIamPolicy( + google::iam::v1::SetIamPolicyRequest const& request) override; + + StatusOr GetIamPolicy( + google::iam::v1::GetIamPolicyRequest const& request) override; + + StatusOr TestIamPermissions( + google::iam::v1::TestIamPermissionsRequest const& request) override; + + private: + std::shared_ptr child_; +}; + +/** + * Conditionally applies the tracing decorator to the given connection. + * + * The connection is only decorated if tracing is enabled (as determined by the + * connection's options). + */ +std::shared_ptr +MakeAuthProviderServiceTracingConnection( + std::shared_ptr conn); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_TRACING_CONNECTION_H diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.cc b/google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.cc new file mode 100644 index 0000000000000..4d7f806d9ab8c --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.cc @@ -0,0 +1,317 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.h" +#include "google/cloud/internal/grpc_opentelemetry.h" +#include +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +AuthProviderServiceTracingStub::AuthProviderServiceTracingStub( + std::shared_ptr child) + : child_(std::move(child)), propagator_(internal::MakePropagator()) {} + +StatusOr +AuthProviderServiceTracingStub::ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", "ListAuthProviders"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->ListAuthProviders(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", "GetAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan(context, *span, + child_->GetAuthProvider(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "CreateAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->CreateAuthProvider(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "UpdateAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->UpdateAuthProvider(context, options, request)); +} + +Status AuthProviderServiceTracingStub::DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "DeleteAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->DeleteAuthProvider(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "UndeleteAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->UndeleteAuthProvider(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "QueryAuthProviders"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->QueryAuthProviders(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::QueryWorkloads( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", "QueryWorkloads"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan(context, *span, + child_->QueryWorkloads(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "ListAuthorizations"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->ListAuthorizations(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", "GetAuthorization"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan(context, *span, + child_->GetAuthorization(context, options, request)); +} + +Status AuthProviderServiceTracingStub::DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "DeleteAuthorization"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->DeleteAuthorization(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "ListAccessSummaries"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->ListAccessSummaries(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", "GetAccessSummary"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan(context, *span, + child_->GetAccessSummary(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "RevokeAuthorization"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->RevokeAuthorization(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "EnableAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->EnableAuthProvider(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "DisableAuthProvider"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->DisableAuthProvider(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", "ListLocations"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan(context, *span, + child_->ListLocations(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", "GetLocation"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan(context, *span, + child_->GetLocation(context, options, request)); +} + +StatusOr AuthProviderServiceTracingStub::SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", "SetIamPolicy"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan(context, *span, + child_->SetIamPolicy(context, options, request)); +} + +StatusOr AuthProviderServiceTracingStub::GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", "GetIamPolicy"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan(context, *span, + child_->GetIamPolicy(context, options, request)); +} + +StatusOr +AuthProviderServiceTracingStub::TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) { + auto span = internal::MakeSpanGrpc( + "google.cloud.agentidentity.v1.AuthProviderService", + "TestIamPermissions"); + auto scope = opentelemetry::trace::Scope(span); + internal::InjectTraceContext(context, *propagator_); + return internal::EndSpan( + context, *span, child_->TestIamPermissions(context, options, request)); +} + +std::shared_ptr MakeAuthProviderServiceTracingStub( + std::shared_ptr stub) { + return std::make_shared(std::move(stub)); +} + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" diff --git a/google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.h b/google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.h new file mode 100644 index 0000000000000..589415597f828 --- /dev/null +++ b/google/cloud/agentidentity/v1/internal/auth_provider_tracing_stub.h @@ -0,0 +1,170 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_TRACING_STUB_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_TRACING_STUB_H + +#include "google/cloud/agentidentity/v1/internal/auth_provider_stub.h" +#include "google/cloud/internal/trace_propagator.h" +#include "google/cloud/options.h" +#include "google/cloud/version.h" +#include + +// Must be included last. +#include "google/cloud/ports_def.inc" + +namespace google { +namespace cloud { +namespace agentidentity_v1_internal { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +class AuthProviderServiceTracingStub : public AuthProviderServiceStub { + public: + ~AuthProviderServiceTracingStub() override = default; + + explicit AuthProviderServiceTracingStub( + std::shared_ptr child); + + StatusOr + ListAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthProvidersRequest const& request) + override; + + StatusOr GetAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthProviderRequest const& request) + override; + + StatusOr CreateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request) override; + + StatusOr UpdateAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request) override; + + Status DeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request) override; + + StatusOr UndeleteAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request) override; + + StatusOr + QueryAuthProviders( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryAuthProvidersRequest const& + request) override; + + StatusOr + QueryWorkloads(grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::QueryWorkloadsRequest const& + request) override; + + StatusOr + ListAuthorizations( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAuthorizationsRequest const& + request) override; + + StatusOr GetAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAuthorizationRequest const& request) + override; + + Status DeleteAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request) override; + + StatusOr + ListAccessSummaries( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::ListAccessSummariesRequest const& + request) override; + + StatusOr GetAccessSummary( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::GetAccessSummaryRequest const& request) + override; + + StatusOr + RevokeAuthorization( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request) override; + + StatusOr EnableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request) override; + + StatusOr DisableAuthProvider( + grpc::ClientContext& context, Options const& options, + google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request) override; + + StatusOr ListLocations( + grpc::ClientContext& context, Options const& options, + google::cloud::location::ListLocationsRequest const& request) override; + + StatusOr GetLocation( + grpc::ClientContext& context, Options const& options, + google::cloud::location::GetLocationRequest const& request) override; + + StatusOr SetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::SetIamPolicyRequest const& request) override; + + StatusOr GetIamPolicy( + grpc::ClientContext& context, Options const& options, + google::iam::v1::GetIamPolicyRequest const& request) override; + + StatusOr TestIamPermissions( + grpc::ClientContext& context, Options const& options, + google::iam::v1::TestIamPermissionsRequest const& request) override; + + private: + std::shared_ptr child_; + std::shared_ptr + propagator_; +}; + +/** + * Applies the tracing decorator to the given stub. + * + * The stub is only decorated if the library has been compiled with + * OpenTelemetry. + */ +std::shared_ptr MakeAuthProviderServiceTracingStub( + std::shared_ptr stub); + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_internal +} // namespace cloud +} // namespace google + +#include "google/cloud/ports_undef.inc" + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_INTERNAL_AUTH_PROVIDER_TRACING_STUB_H diff --git a/google/cloud/agentidentity/v1/mocks/mock_auth_provider_connection.h b/google/cloud/agentidentity/v1/mocks/mock_auth_provider_connection.h new file mode 100644 index 0000000000000..a66e53ac1b477 --- /dev/null +++ b/google/cloud/agentidentity/v1/mocks/mock_auth_provider_connection.h @@ -0,0 +1,175 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_MOCKS_MOCK_AUTH_PROVIDER_CONNECTION_H +#define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_MOCKS_MOCK_AUTH_PROVIDER_CONNECTION_H + +#include "google/cloud/agentidentity/v1/auth_provider_connection.h" +#include + +namespace google { +namespace cloud { +namespace agentidentity_v1_mocks { +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN + +/** + * A class to mock `AuthProviderServiceConnection`. + * + * Application developers may want to test their code with simulated responses, + * including errors, from an object of type `AuthProviderServiceClient`. To do + * so, construct an object of type `AuthProviderServiceClient` with an instance + * of this class. Then use the Google Test framework functions to program the + * behavior of this mock. + * + * @see [This example][bq-mock] for how to test your application with GoogleTest. + * While the example showcases types from the BigQuery library, the underlying + * principles apply for any pair of `*Client` and `*Connection`. + * + * [bq-mock]: @cloud_cpp_docs_link{bigquery,bigquery-read-mock} + */ +class MockAuthProviderServiceConnection + : public agentidentity_v1::AuthProviderServiceConnection { + public: + MOCK_METHOD(Options, options, (), (override)); + + MOCK_METHOD( + (StreamRange), + ListAuthProviders, + (google::cloud::agentidentity::v1::ListAuthProvidersRequest request), + (override)); + + MOCK_METHOD( + StatusOr, GetAuthProvider, + (google::cloud::agentidentity::v1::GetAuthProviderRequest const& request), + (override)); + + MOCK_METHOD( + StatusOr, + CreateAuthProvider, + (google::cloud::agentidentity::v1::CreateAuthProviderRequest const& + request), + (override)); + + MOCK_METHOD( + StatusOr, + UpdateAuthProvider, + (google::cloud::agentidentity::v1::UpdateAuthProviderRequest const& + request), + (override)); + + MOCK_METHOD( + Status, DeleteAuthProvider, + (google::cloud::agentidentity::v1::DeleteAuthProviderRequest const& + request), + (override)); + + MOCK_METHOD( + StatusOr, + UndeleteAuthProvider, + (google::cloud::agentidentity::v1::UndeleteAuthProviderRequest const& + request), + (override)); + + MOCK_METHOD( + (StreamRange), QueryAuthProviders, + (google::cloud::agentidentity::v1::QueryAuthProvidersRequest request), + (override)); + + MOCK_METHOD((StreamRange), QueryWorkloads, + (google::cloud::agentidentity::v1::QueryWorkloadsRequest request), + (override)); + + MOCK_METHOD( + (StreamRange), + ListAuthorizations, + (google::cloud::agentidentity::v1::ListAuthorizationsRequest request), + (override)); + + MOCK_METHOD(StatusOr, + GetAuthorization, + (google::cloud::agentidentity::v1::GetAuthorizationRequest const& + request), + (override)); + + MOCK_METHOD( + Status, DeleteAuthorization, + (google::cloud::agentidentity::v1::DeleteAuthorizationRequest const& + request), + (override)); + + MOCK_METHOD( + (StreamRange), + ListAccessSummaries, + (google::cloud::agentidentity::v1::ListAccessSummariesRequest request), + (override)); + + MOCK_METHOD(StatusOr, + GetAccessSummary, + (google::cloud::agentidentity::v1::GetAccessSummaryRequest const& + request), + (override)); + + MOCK_METHOD( + StatusOr, + RevokeAuthorization, + (google::cloud::agentidentity::v1::RevokeAuthorizationRequest const& + request), + (override)); + + MOCK_METHOD( + StatusOr, + EnableAuthProvider, + (google::cloud::agentidentity::v1::EnableAuthProviderRequest const& + request), + (override)); + + MOCK_METHOD( + StatusOr, + DisableAuthProvider, + (google::cloud::agentidentity::v1::DisableAuthProviderRequest const& + request), + (override)); + + MOCK_METHOD((StreamRange), ListLocations, + (google::cloud::location::ListLocationsRequest request), + (override)); + + MOCK_METHOD(StatusOr, GetLocation, + (google::cloud::location::GetLocationRequest const& request), + (override)); + + MOCK_METHOD(StatusOr, SetIamPolicy, + (google::iam::v1::SetIamPolicyRequest const& request), + (override)); + + MOCK_METHOD(StatusOr, GetIamPolicy, + (google::iam::v1::GetIamPolicyRequest const& request), + (override)); + + MOCK_METHOD(StatusOr, + TestIamPermissions, + (google::iam::v1::TestIamPermissionsRequest const& request), + (override)); +}; + +GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END +} // namespace agentidentity_v1_mocks +} // namespace cloud +} // namespace google + +#endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AGENTIDENTITY_V1_MOCKS_MOCK_AUTH_PROVIDER_CONNECTION_H diff --git a/google/cloud/agentidentity/v1/samples/auth_provider_client_samples.cc b/google/cloud/agentidentity/v1/samples/auth_provider_client_samples.cc new file mode 100644 index 0000000000000..c4a3e5532cc8a --- /dev/null +++ b/google/cloud/agentidentity/v1/samples/auth_provider_client_samples.cc @@ -0,0 +1,190 @@ +// Copyright 2026 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 +// +// https://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. + +// Generated by the Codegen C++ plugin. +// If you make any local changes, they will be lost. +// source: google/cloud/agentidentity/v1/auth_provider_service.proto + +#include "google/cloud/agentidentity/v1/auth_provider_client.h" +#include "google/cloud/agentidentity/v1/auth_provider_connection_idempotency_policy.h" +#include "google/cloud/agentidentity/v1/auth_provider_options.h" +#include "google/cloud/common_options.h" +#include "google/cloud/credentials.h" +#include "google/cloud/internal/getenv.h" +#include "google/cloud/testing_util/example_driver.h" +#include "google/cloud/universe_domain.h" +#include +#include +#include +#include + +// clang-format off +// main-dox-marker: agentidentity_v1::AuthProviderServiceClient +// clang-format on +namespace { + +void SetClientEndpoint(std::vector const& argv) { + if (!argv.empty()) { + throw google::cloud::testing_util::Usage{"set-client-endpoint"}; + } + //! [set-client-endpoint] + // This configuration is common with Private Google Access: + // https://cloud.google.com/vpc/docs/private-google-access + auto options = google::cloud::Options{}.set( + "private.googleapis.com"); + auto vpc_client = google::cloud::agentidentity_v1::AuthProviderServiceClient( + google::cloud::agentidentity_v1::MakeAuthProviderServiceConnection( + options)); + //! [set-client-endpoint] +} + +void SetClientUniverseDomain(std::vector const& argv) { + if (!argv.empty()) { + throw google::cloud::testing_util::Usage{"set-client-universe-domain"}; + } + //! [set-client-universe-domain] + google::cloud::Options options; + + // AddUniverseDomainOption interrogates the UnifiedCredentialsOption, if set, + // in the provided Options for the Universe Domain associated with the + // credentials and adds it to the set of Options. + // If no UnifiedCredentialsOption is set, GoogleDefaultCredentials are used. + auto ud_options = google::cloud::AddUniverseDomainOption(std::move(options)); + + if (!ud_options.ok()) throw std::move(ud_options).status(); + auto ud_client = google::cloud::agentidentity_v1::AuthProviderServiceClient( + google::cloud::agentidentity_v1::MakeAuthProviderServiceConnection( + *ud_options)); + //! [set-client-universe-domain] +} + +//! [custom-idempotency-policy] +class CustomIdempotencyPolicy + : public google::cloud::agentidentity_v1:: + AuthProviderServiceConnectionIdempotencyPolicy { + public: + ~CustomIdempotencyPolicy() override = default; + std::unique_ptr + clone() const override { + return std::make_unique(*this); + } + // Override inherited functions to define as needed. +}; +//! [custom-idempotency-policy] + +void SetRetryPolicy(std::vector const& argv) { + if (!argv.empty()) { + throw google::cloud::testing_util::Usage{"set-client-retry-policy"}; + } + //! [set-retry-policy] + auto options = + google::cloud::Options{} + .set( + CustomIdempotencyPolicy().clone()) + .set( + google::cloud::agentidentity_v1:: + AuthProviderServiceLimitedErrorCountRetryPolicy(3) + .clone()) + .set( + google::cloud::ExponentialBackoffPolicy( + /*initial_delay=*/std::chrono::milliseconds(200), + /*maximum_delay=*/std::chrono::seconds(45), + /*scaling=*/2.0) + .clone()); + auto connection = + google::cloud::agentidentity_v1::MakeAuthProviderServiceConnection( + options); + + // c1 and c2 share the same retry policies + auto c1 = + google::cloud::agentidentity_v1::AuthProviderServiceClient(connection); + auto c2 = + google::cloud::agentidentity_v1::AuthProviderServiceClient(connection); + + // You can override any of the policies in a new client. This new client + // will share the policies from c1 (or c2) *except* for the retry policy. + auto c3 = google::cloud::agentidentity_v1::AuthProviderServiceClient( + connection, google::cloud::Options{} + .set( + google::cloud::agentidentity_v1:: + AuthProviderServiceLimitedTimeRetryPolicy( + std::chrono::minutes(5)) + .clone())); + + // You can also override the policies in a single call: + // c3.SomeRpc(..., google::cloud::Options{} + // .set( + // google::cloud::agentidentity_v1::AuthProviderServiceLimitedErrorCountRetryPolicy(10).clone())); + //! [set-retry-policy] +} + +void WithServiceAccount(std::vector const& argv) { + if (argv.size() != 1 || argv[0] == "--help") { + throw google::cloud::testing_util::Usage{"with-service-account "}; + } + //! [with-service-account] + [](std::string const& keyfile) { + auto is = std::ifstream(keyfile); + is.exceptions(std::ios::badbit); // Minimal error handling in examples + auto contents = std::string(std::istreambuf_iterator(is.rdbuf()), {}); + auto options = + google::cloud::Options{}.set( + google::cloud::MakeServiceAccountCredentials(contents)); + return google::cloud::agentidentity_v1::AuthProviderServiceClient( + google::cloud::agentidentity_v1::MakeAuthProviderServiceConnection( + options)); + } + //! [with-service-account] + (argv.at(0)); +} + +void AutoRun(std::vector const& argv) { + namespace examples = ::google::cloud::testing_util; + using ::google::cloud::internal::GetEnv; + if (!argv.empty()) throw examples::Usage{"auto"}; + examples::CheckEnvironmentVariablesAreSet( + {"GOOGLE_CLOUD_CPP_TEST_SERVICE_ACCOUNT_KEYFILE"}); + auto const keyfile = + GetEnv("GOOGLE_CLOUD_CPP_TEST_SERVICE_ACCOUNT_KEYFILE").value(); + + std::cout << "\nRunning SetClientEndpoint() example" << std::endl; + SetClientEndpoint({}); + + std::cout << "\nRunning SetRetryPolicy() example" << std::endl; + SetRetryPolicy({}); + + std::cout << "\nRunning WithServiceAccount() example" << std::endl; + WithServiceAccount({keyfile}); + + std::cout << "\nRunning SetClientUniverseDomain() example" << std::endl; + SetClientUniverseDomain({}); +} + +} // namespace + +int main(int argc, char* argv[]) { // NOLINT(bugprone-exception-escape) + google::cloud::testing_util::Example example({ + {"set-client-endpoint", SetClientEndpoint}, + {"set-retry-policy", SetRetryPolicy}, + {"with-service-account", WithServiceAccount}, + {"set-client-universe-domain", SetClientUniverseDomain}, + {"auto", AutoRun}, + }); + return example.Run(argc, argv); +} diff --git a/libraries.bzl b/libraries.bzl index 15271538a710f..f07c00a0cef36 100644 --- a/libraries.bzl +++ b/libraries.bzl @@ -27,6 +27,7 @@ GOOGLE_CLOUD_CPP_GA_LIBRARIES = [ "accessapproval", "accesscontextmanager", "advisorynotifications", + "agentidentity", "agentregistry", "aiplatform", "alloydb", From 0b07d805982e887320f36285d4c945c6e7064ef9 Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Fri, 31 Jul 2026 11:33:49 -0400 Subject: [PATCH 3/4] Add API baseline --- ...loud_cpp_agentidentity.expected.abi.dump.gz | Bin 0 -> 528697 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ci/abi-dumps/google_cloud_cpp_agentidentity.expected.abi.dump.gz diff --git a/ci/abi-dumps/google_cloud_cpp_agentidentity.expected.abi.dump.gz b/ci/abi-dumps/google_cloud_cpp_agentidentity.expected.abi.dump.gz new file mode 100644 index 0000000000000000000000000000000000000000..d4c0f30d16642ee101097a36e4b8fafa99838bf7 GIT binary patch literal 528697 zcmZs?WmFqcy9P>eC{BwMcPQ@e?$#D}FBEqOZY>rZic<=uMT5H*2o@l?yF+l7n||kf z=iVPTYt358o;@?KKF>RQzoCjnNBGYN>FCKMWw9xp{aeSX*?Kft>)6S%iFC+n!b!p} z8#_O{4862rke>V!F-k?TiO46F&wwq^VV^|jQ*ts-3RQuSbOm(ge52gi(A zp#J=hW*+vOQz`f-+VA>me_hjO->F{N`_E|NfIxLHgPEk!2z0x$*Xz$VPwp{DRHxbd z`_o-e`@+xR`I~+J`bnDNmM- z$C%^mJ?brsf%zu_;I?6iGjy~!F#Y+~rZ(@X>3NEx09xM)82D3?pJH&GBhuz-pg4Md zBX5HxX8C4u)${Cy<*aYf`pzalP&rZU{2=(LiYLA;H+X?Q8`jBqQ|iLDliyMP$&AQB zU`Fqub>FEy&o+b8$3PVHG7orhYrUU%;=Z4_YaCUJ`B+rRry{$W3%HiZ=*)guv(6ov z{DeB(DV`f-a8g?9vTFEHae17;17zh83>stRpWVV>{GK7OA3dUd{S zvQw~AcTKU)*2*Gv*QH?c_s~`fz^jUc8o)q7>`~y+dbn!~?;?T51 zt+N8Ee%-`Fvv=u~z^vo4O4lRSoDr0n)xJ<6aV+W6^2`XbLmgZ*yy)A+mj8Ar(By!9kONFU8^suASp&`$4X?4?A$#Euoe&yZP%*qFMAah}0!z=jc1o5(}9OI_$>;N7~s zDU;b=9BY?hWkYLgCGoC@tRb;ZF#Ut6gx8R*R-D4G(%1BI&7ShlX1HM6JT?c-O;5M` zFX@!w)Q8JaLF?U|6ZVy-Pe*7k-4M+-vk$u~ohADw{YJk?2} zn!mNM{nP5%GVkI8y$ZS$f6-Mec(BeI7=DxOAp<6x!nVlcU%&8dHuH3pzGrWS&`Si1 z+M0>dmg@}%(x!|)N{;ec9tey}awc;wim`d+CxXhA@67gObpkXJfx{4wGyw~Srg zZNTE~O<8mpxXzIn@Wj8&IG;*;JX2<{Nt!5Pa?js-c*#6HAE8x21|mI}-9LiV(eZE5 zw8fDMEVC&FU1j_|&;{)=E({=Sh%uGinJt?RSz?{f;XQM+T}0T zwaY;%D=f6mwFWOGhgj=pZeA_75-D|QMeUx|6dkQjkF)9v^IW>-Xw|M=dl!Xzt17Mq6L z9hl-wP){LFJsnD&p7B3C6Y?l#WL}1B=a(xbZ17pcL!M4NQacBrvX9p7LtP^4Vp{_1 zLP;kp1+A@OUN+yc!OISmM`)?9aq;;U1XD)8x+|})1e#HO$xyw!&zN`eM{vQeZQQk? zpjb_RUgWR43jEHN@n_k>-l=|#;zGV&ih@{B@@Ft3?#0nD6fJAOvcBu7d9k7%fjt?Z zpxe9rNW#WU%N9o`}mXw(eMX#K6~nC=i0ug!*U*fw|a^$j?DTomR{CJljdE1^gBp+ z{1|(g{V0F456FncdDV(TJeJ|{^H~gmJnZ&-R)W)f&@7uNJ*VW`My~asEUg_R8C|bs=S`hU6~J1i%0;dvr|)G)vPAlr&FV3 z;>Yw^@IvwM*3J_rq0jsIWFIhNb4D<|4W1(Y8mYtG6ich*u2FM9?0Jo-Q-E<;jZJA8{(eRyQ2pk(Tziih*y;d=+tf|!%!h^Ppqg< zcJ???jIv>c`CaXvKj`BMWMpTJaSYa7(hKJAYT3#4&bw9VzZ)_Z%$ zcf19ew!KlS1(zNr54F-y_FL0TSP(Xvy z95+AEhh}2R%;rZ54##U;CR|;g@fRIWHBks2We4iggT)>mHM?qep@J`Mxh_6`r$Bx! zkuOQ%<)?|b&kp@{8No*vlHnJ)kGL5Bdjak1r^MdPjyooyQ%$#Plm|KtgF-6Q`+swT z*y<#aptwu$xtH*prv=fzt`*LNUFD8;-@zU{FP;*ocMdJnmb&khWYWt9Vx`4LGp}_L z0b_Pb2cd^F(qaC4nKL??=7on}e>^jppdGLDs7exv8aCdZZYyp(ZYWggfrT z<>x%`O&9_Ob%4?dkIkbeMxNDU4yojLzDRNV=D_POWRfF?lB-QLho}p5AxAWS`%`P6 z+d%rb+^8C)4`!_v5LC zS3?}7WZ~w0FT1F05He7_oI9H*uq7uaY#k~VSRmo0r*myw~(ir5$Qm!tIf*IeS+3UbhO&fudH#8EQf$K&Y#4) zfZb{>I1Vu2ejTbyQc6f+peM~YE^;?=P%vL&%fR)eY0Shkb@1XJ5H$Veh<(uT>Fcmf6G6cFZnLzhe9 zNDkdyIVCL%xZ!gY)yNn19LKDrVe%c}vlm~^9g>I?#~v;_Z%EUqJypZm63T#zNm1O9 zQkYj(SWk0$PR{oC(&QQcb+p*3x%qrxw@2IaVW40w?#?3OAmy+A)HA4j2Y1j|9Mwq2 zA@DjOzpFzW!TBhl9k$SFV0m7FY(T0bf@tX4IhDwL1pPU~Gq;QNV1A+=hWs$j{l$jL z)~p**(7ktk5KY$wZX`9Uq0^d^f{4&)T-y~drGRMMMi&Tz$MQZ+N3_C{lbXTC$=8OmqE&09%Z6sJMx5&8b2;aoD09 zX;lWUQNlgE)O$Rf;RPs#J(a~zg)28AfY9=|ZBF%lxONJ{(Rfebp%^~UW2{LT-JY1Y zSu+y3&a2tD%d`v&&T7)dD#x_8F>iM59L>C6u9DI7Qkry<@;~_v$({z_+6V_i(kC@Z zO?+6MkXs}aXE%gU_6(6RTHqj72?w#s`r#uZ$k1NP3yOt<4|YkVR9M-5WJkw|T+;B8Ql>2@Odinv>LZ_mL68JkoR~ zPf)q2jpN=~_`DCr)%=h1|+N)LzSG&bWm%{zv_geY~ zaRHWxpSzmkOl(EpF)s5BQu_9%c0=WxxP8B);@U33V-qdW#j3@QQen^U@-{jmY2&o} z(-;mg&F!ywP&RjsU<{_gJlU3Et>7TU>D8PetC1BG69s{j`T(+#F3qvcp+*`&-R|%? zu`ca;hWY@LKIVIZgQMC!?y(W%T_&KqNdAALEkDGdvFNW!2CkxnK9oS}x{I#_i|TNu z4wX_ufBH8(E&@f;Zul1;KwRkel#)j`fR?-GfzKCSH7Y07Mboc9?qfI&+PU3wajBRF zUy~O4rmidOu?MI0M~h_tImP_*`{H)BWfsMG-;xtRa71b;sk4!1ks1BJa8WAYqBz1y z%!$HlNL3)OA|O9QCBPBS3xz;VeV~p%kK9Y;5cNSRK)xEzK}Y`_1Q7YCCm=$fKdKv0 zrLm$Wp+E6|*7@}Rv5w5cr~0;n8;_s8iNmd>P;N>^y#FLl+6LZEBPrDIf^4BtjhFA~ zKl%LxSMq0mlWwlf4<=ma7cWsr4KCyA|1W4zL3+Y}J~h1zO;mB;eF|s8EhAyowBxGq z>deEvo*0(M3`qGegMeTkoH;$C>8RA&;Xue0&(d2O>uYt(hf6imb_i_1p_;8ZRePY` zc}mPrJZwegbwL>%0?JT4^Jb>|uf_q6hJ~my0bCc1(qRBN(}5BJy9;Q3Dm&&|;aUHZ zx`f;2RzJf{;`Fq8q!q{E`1DL{Rswb?3Yf*VX%lkinlF(~XJw=YUyzqnc+b{yfp^X$ z!teMo2qONO(UtarTw~9ax@u>d@$W(yJnJV5en`EUi@xWM0vy$fBGuxy!I}A=$>Gr!Ez zR8WXYmmWCS8ktgF2Rnz|cz3YJQt2nJB3qkmeoD;FuGw z6pd^E<(8iLpyUV^v8K3R4g{UFbF`G#qH5|YoF!<8udORe`eV1PVurn;5o+4=;|d-3XI&_c}V zUsZpML)JBmMy7i!{a{Id^4FZ6OD8@_h@=b^L*aec^$_HqPZNbAyCt2$unwu{i)t6;4Xs-rmBf8R*pw)pk;U^wIMd^kD3*P#(+6|EOO}H-lokfRVf5%T$E0DFwmQhwkIp@4j5FzsRRN zn0Ap_8c0$Nm0l17 zJ{JoZ+&^p1?$J2uT4$_=o~g*rW7M{Y(9e}&E)k2Oi1LRR4QOP}P1AI1d|b<$ zW4SB}CCoSGyu`97J$B~oB>sd(RTE+&kl5vy8>Dd^o4fXuW1SmvmxBNrQ4UY9)!8V% zNL(Q?JkYU6th+?EV_>(S)r&@E$EbcNVvu|%6o61?P0enB`romiemh+r{s&;z-T>H~+wijE~k|vH~#vigcte1%~L({Dn-#JcbCO<+dr1ths?Rqc2f2EVc@!f@iVU?P68@GU>Qi)M1dy28pfM?Ubgcz0!9^f4Ow>QYL4 zqWb5ulsKo_56Y3o17HDV`&2Ilkw@^{7sr~-K9F>t-XELQfh?@rvQHi|{I7qj9!J0R zPW<{gcMP`MdU?|OC;@;kxvs8O5M9jQ=skLK&);R!AEqoe#&$LPwVDgg@6LibGM}0a z*!3ospHCsfi?~qSvCAFQx{sl3lj*R45xvrilhOOaUJ)InNe{hcrq!LBhll;mKLxFe zOG4lJRj#*cu3@p$=fj;Hb0;UJ9b%rFooHhlW@goYgF9|D!Q5BU0|k>pzfB)c`JaN0 z5@t*Fwg4?NXX$UuQmDTf>xo~;+ju&Vn}$gQWH|5q5nW#H7fTeajB-BwM(sv3I)T+% z^ERR1Ua@!0K9y$OUZlHsqH6*V2>%vpbYP!JEaWs7u{n1IK%yAsd$@S=uUE~eg+Z@E z-JIr7SGU~cT325)B}&}XW2KMYD+B4Wr*`g45UO02CAPpoDtX<=;S)=wE1?! zmPWa2QGAAtlwBLq36|86k$wK~vu>VnC7?;Xr#LKEsH#op9nkL>IS|76WVlUTGr54# z(L}U$TN7o<8@XD>TES*!KZ;5|V+f(Os;DRQ^{e3juzKq>Xy|zIIchlsOV6tAkA*A0 zD}TI_D}NELaXblTr2-{pWy$ljfL`x1GgfPP((m-XAvGev18UC-g$1j2Ro25 ztmJTc=Xw?+-@S4DR3o@&_SBDitdPVurwuLw#Z!r=qN%D zYMyH7gc19H?IXcnzKW(Ftk9_Pm`g>3#%eI+1`wa$CrMyK`fR2Vc>!y)}5zL zA%IWb&-$XXGK*XkQx z-z?QmgcHcTgiFibv}5ITWr`Es>~l1$dV?=Haw`OsqkGS<0nC3Vfn&8zPKh=e$VV=6^SE7 z%@E(cNH;P2d@mtT$*cWlNb*&nh|vgda?Z0Kz2j)_Ay+L0mUgMXrqK z5@G*QHqG@ZELY*0G?tl*W+-X``ffpzq!Ycr3VEgUEJd9->Wq%M`!*@b{Bcl;E9e}4 z^x(#s;Uo1YCamP2#Zpu{JvI@NrBpTP1MZS{C$M%Nku2QV{s{n zaG?7xFt1OcMuv}35+8>QWn3o7Y`}>Rb@*Y72Aw%~N_*a-a8MsZ6C2hSb z%zd}$92BP4Wg>9oJSSoKX*SJ75Hy&;jnWsCOj&4WN&VK1_ozBAJWGpx0F!sZnK5FQ zxJ&H~(3}w-ON5~K&@3&vh%CHk@{vAXUt7ka%)4*4wB7)-hLI0uA2VVP^?dgK54AsY z=L2S)*x$)~%d}68K1;#ENMYY_ay4?VdtBzbm8ZLPY456cGR>#f0yP z`CskxrQnprc@0h^CyeSU0Idma6_Q81TFd9FtX(kla}$0~gTQpaa=B8& z!7e`lo5(m2$WW>IcZuMAu(=vN!N@3$^Tp~z&WMghe7OC6CXs;GE*OCNcJ=x4#!9Kw z8z3e=^G4isP3_0ugG@`JPVuLKPrjp^zhn)g*_hJrbbfC2Q9%iYJDg@}9jJ^R#ZUaN z-^va~t#S{}Yv$i|@E)lg4A}(A*?X%ckKbX4lO3yEX;VVm@Sn5s`PM|8XBt`F z2c-xuZgXdm*$1tl$oNIoe$xWJ)rv+g#0!?BOJyDrG<(lcz$^Jp%|J>r=Zbw4141VX zY)^4MJn69KzZmx}Z+=Z3E4zTZG+u9~M3vvtado(fpk>yYzHj*s@+;Y7;Pm zu)8AB8wk;eDpSj6M9DV`7zU;btjI;Ajbnq?3^k2~ZlgI^1x|4_Gd|zohD}DC;-2D; zDxKoG!;eI&+vow@$M7}i36*83QKWS4z;B@%zmM)wU;~@vzbc|c8x~=+Psfiz9jY*i z5f~J{m>hl(JqlzX+Xxsbx-vX7GViPG$|;MIFv3x@;n1b2Eylqp5qaSi=YG36F|Ifr zS~goL zBqg`dV}>QaFCfw;C@Jz%(n>~X*T+%_Qk1^sxffv0-Ti?%+aGS^!d+&)TQC|sKzpoefzE1QLuBMtr zn!bv?nz=gs6q=dmdqg6B)-VnX>WyfN>?2#hs5v#z#AUa5jEV58-505k@8I;LPf!EJ6 z?KN6_zHb&|W#+$0KTStVPK--oy*bwsaAF*mUJ9;PPBAgGF1pzdhVhyzN&w*%HO>Y% zm7~zFv$8{zO30qIxh|3jcccbaJ{%J@2H6Mq>AeG8%thQrSw@BUa=FZ|^>zJ3{6tsN zH4GO!G#d}gWuYUvZ4X{N@t~Etf7{;=l3ylm+%FdUa>H!i1Lf1*F67=G9`G^V_0F33 zawYUo*Hy}G!goVVAB^5|MGsg_RQhD!$(DRFnX94=h(9VexsIy9K%eJTxF)eq#Kf5Y zVI_0@3kYnF1)GvsHQ2=+3Fqw)4$#{L0EJ!^KM|m{{vq%$X~CQ_gv@RV`xPSSX^hz;_9 zVA%MKFQ_m{Z`n(j>q;?E&H4=DGsu2QZc%8pX*w%&EKRX^?H#TWS4h~DB0|3xu@r`s z%jL5+_mxa3k;ZYq&&PjNejv8$&7{meP~Ot5jcZDZE$VMo5*0LT%H!ASnZgGyMYABa zBw$_aVpoz_%wot!)Rra>eP4V6hT9JrnWg(TjdP?zl~`^8M1l~DjJ#&)L1f_dYtp&9 z7rwNV~`EAggmP#)WkKvVxA%YmL`s_HvhNd1%=!w8hId@hSg-7 z*VXAvFM&K(sr$;E4QT+Arn|;k$@OU7OxV>aLMxP;{7``y@HKylA81o~G^j2n=Wkb%FWELQ(f)arIWfJNs=hONv5Fzc&aH;y(O6R z5#HZS2sg;*o*W44NGx{AzLMU7YdTEc6d;Azzl4Mw_pS<_u3gqjc-3-bILIUO;|5OD zYj%j&QKmOt3l4CRuj})4qBIr|f0D?uC=L9Q4b!1ta4k;tUGx8ZCql}+t;CYxsi&l? za;mT3Tc7okcC=%lM=LB#36kL(>Byq{^b0O)zBSsjJ>&enCRI5!#e1F1Hx#qSF7A|u zKO75V9UgYKzkqlhu^9P>SSHeBJva1$K_da2gTX=lXi0=p3!LueC+mB}7dYdblRRTm zVL@PEftf!c&gF1>=wV}M(Cf=#R8v?N=4ZIHC-u2ns2UfDg(R}fN?^FOT6^k3c;ALm zIY24AnCRO|%+lil_%4l^dlwYSB%XsRXA~ucBl#8=a^>>%)K_L=?qc%e{CS8Utm&7} z`=d>R!rHKzU6ksnWo1_OGJ%5c>9;C0{VvF8~C0!VGZL$B13YkfD)6cJ(_OMeLOOxYk|#HZI!$1*s1FNrvu9=tOMiXk@U9^R-H z<^DI0k^aTbU{~U#N585wl=lik;ZpJBb== zNuJ_Ygw1sHl&RL3N}PaYDq@|bejd-(pnd_|m{gA6Xq(`sarvM$Xq11x!wXkMcWX4Z_cb!$eXXEU7Q$o@3zDQ+sx^0XlV!3zY84&< zy=oLPxFMyS3_B2+S*bw@H1;=_&3#x7Xl}q`&EM!$_ouxb#I}K=Hv$@5dn+4e0|uJU zd#7I+BV&zN7`&Vd^DF)RBXiwVO*9#WyU=91Acg8eK~N`M5O2TM_tLA4QxK2z#g_)w z`m6Cp#H6^DFZkz5uJZ%ne)Yk#HT(ikiim}NtA=-GEnri3R)a|vZ9|$VY8-=H`G0UF zR3lKr)rNA%%}G^k0t5FxLFi)b?yo;jTQ$=t&_?3x#@U7PRgEK4YG~|uh*liU8#Vsh}t2eaPky;8ywPknzxhnAs%D;GWW%g3S z!)(Vulfk&{qA_5)c5^zc;db6aZI8BgN#|nr9K_6zu-Z=PFRjegK-EA*&CQfys%C<( z(P1>BD2ia9;tYz=$Sy2=)d(zw)$yNnDEs{U7IDfr3Vh3h(XYaY4KWr>i$KcgKuyb( zW;kVl6D!8q4ep2J{1kq+G+&y@IgJk+pcUwx@3SF|xlC9&*H=kf#(jW4AqY^#<7FO-swPFonQWL! zOlNRGa^RDj(t8Uxyx|?-q6&jpdfq;m=}&vEi|SdUUkgBhQHVVh-GGLaf3GskM40U&>_27^j$%_8#4`#q%d;r3W#Ddvr6*|EqJT_k@vt74V5!TT>ZuMFw zn{8iWkGkQxv*ajRh}By0D#8+{keZ?y2ScV%a9xV|tZSg4CbOA2-;XwRd_PyKtvCDQ zTu^kNwcjA-utD6u*Z+gMEO>}QX7mx<<>pyc5JjFyQn=H;w&tT2{>w9 z!cnXJ^;c68IoVxHsmnY$PFH`;NKrv(cozosF|knfwbqoV=R4G2vsef6I3PTNDY&Rt zI%KW|D|4g`rV_sz<=Wfrx^g|*2ZITv!ves-w8uubDh{)d0JPPoS10`80Z9RDQOIyW z?{1$$C2tm#8tf)Hx%we};SXfgk30(XIc7{LY~&768=)rLBA=y^W}HIZvL+BdsotJ4 z*ixh%+)`r9yPWSjN86C-(9^81PjY9&g*(!ARSkb$k6j7C$tYaI`yIRezP9S~zk&dD z#U5#%SNq2x z%@KnK?EZ}^Rdd4g;~E>!mn#~uY~c|I6eAA4y^s332MhFT#ZJvCf8rY$1!y@+Nc zVr^WjaWGx3E2EL7X`V*VYH2o%*}ojsz=Cw3W1m*1#t?XK`f)@12=2VgpO*Zf6z_R5 z-%V_5$eVdtR31_Skm5kZkv0uY0C7q?Gr15h66l64U}Qg-;dIFfmw+jx&TOM=F+2&@ z1Hh{%O{D1G=!w<#bwA?Q>s8Ej z+#`57Lx!Hu(i2T@%|joNm;mQh8JSxSra-qC(tPe7V)^!r4Kc~h@WFqfDa>`_dKv47 zws+&U^6LKW|52*@z0Euj?dhFt=X%#6g}!739JAXS2#3b^O{m}KqN8At{ucq)Wiv9d zEca>WX9!d%>tR`1bL*q`R`qu+`V2n5(3o%y#_lk!9+Gcr7^lOgZYWnrw&N9=_^OmY zW+}HWVYiW^H1kTI0K=rCB9`D$<^zwiWrnQ;Q4NGl>fe#K{r7*8GFgoE*p z=IK6EVX0764mB^49iy~y`lhJEAwtjW{gg*aWciWKIR2cVlW9!OZ=&KApI!eId+*)r z4BhF0^ena0s1+WhZeHnApd37V*5G>ieo#VRkw=Eu;Mn^1qv!3Ot=szI3Brr%4b*gy3-pLuvxT7-S40 zxC1bbcN66Zu#Ede&1negHL6%4M-~t{f;LU6PiD}z$JNigFRb&UdaCpQ0ohNW`l1?J zM}A4~NhTXfRLa!E!3%-tgMiV$p`|>RW|ytA(`}2=^$$} zEHXcCb|vxXhbOKWe$Q!}Embqq5z?SZ4giwk9W`J_iAqNX3deG^U%+lmvRXO=I*MpHR^I%`gyE&CZq&@am~ zOFE0h^R>5p7F>Y23sw14e;qqeAQYf}1&hC*L>4 zUs3s|qbP7kYI6<4U(>Yd7l7Q~AZ;3PmTQ6Ae&(nnu&1WB)8oL_2Zw)6tl;NoiTM#I zyDfzsHES(SaF;>!&Z{kNmO{r%gmbHzhYfpI5~;snvVMs0;LxoFQG7nfy2y_Ki1dd5 zN=a;nGA?gqAZl9iq_}sB6O=pPNY3JA!GlCp-X;Fb0|&$tBohnoEHWWdNX#F13s@~* zlk^wFqQbQHyKNExYi3+w|A^D>Az3Tpg&_k6Pp9^#TNowy@-OUSX3g`Hn(&1k{w@qqv72#r^32J zWSfcz4q7ZO%bTUD;4eQ05)Vb&sU|l&lvPQESK-|mG^`th`h31EZ;tu>PpuP6Zvq>n zG9giCP88`w+o3F-{8>N*%7H& zhnK4Ol2-u4?n1tKibO&kn6}=__DDBMQ-Tm44sgO>7} z^BW%6zy!#YB(hf`NRGBwx8gwVbXe(Pvq*XXy6t@FjS??cpcZ~+#ng7r{nfUOT zM?k_0%p_rOELeLvf{-~XLPNBi-A|j8lz|`r_z z!*FL6<)q|JtE7u&u<)H7sKf8(urKTWKMMjpkA`s=R(|Gvv{yO?!Z=-?4Hu9C4sKzB?W&SY4}YCS%$$9|?&%sXbzEKRvt}J^PjG#3ldCk&Du(lU zQdsZw0au16#xOF{LAw@aO6ekRL}du9o>*xmZbeqEEl@%XFxdfZo5TD#`KIePLoN&P zCtk^9TL-}oAK*Nu}vIC!z8hfMNi@$rB2@}cd$$}dFF77QXl8k zQ~kQ)SU97MBbZq|Z(i~?MOoHxm|O_#d5*MZOwt%1Y(#dDlli4C-A(G$eV~ENOC2xU zaK&;o>{dIt`)^CFMf25pBQrTWm&O=H`)z|6v-h1-Mtl|*=SS(m&$~N2ouHSO)5Ylh z!z(mJckuR*lCH2|H`}C|fEnLFR8w!WJIYhi-zZAO)lL^5A5OD8)YajPzuh;myQT+- zfdur4>V@UTiVAC3`u2N}WJQxp$6%5?VbRI#F5;c!o2*z7vQI;6O)Vq zvk#X^e$auKXN!X8QAsRqH9VD=G>?cWNC=;piq@MDVC`H6tA)vHXu2tPMQCJZj*e(~6nZ;FaY|u__sPD~nVD`5j&@CMfS9BEp{Z zb}4Up%;5iRNghpkk!8*HP)r*|B2rPfiO;)itvoP{>?!liylABRgj*)7QH+4=5p;$C z9nKw6PC8$5a6M_d{F>*FdntF~ONuY1+*M2K^N6*Koi9Rps^!IPoW~HrD3bUWP=%Fi zA<}=oH4X4)g5FVp1_DadtrKGrlEj~d5R#-;uqTF)&%12Sy*lHGMI{O<1_a9J@FEhB zkqZL~P4=qQe~T9Vd|ztpRc`EQ==Zxd#)vQnGKx~8`YlA?;0?||_l91z>U&qK zJFAj%8-mL3YDGQtbM(_OLK^p6fhix>?Jx9OO=+->Bl$zN#(GsWA%+d&hb z$SIRNic4GeKjhKHk4avMg9#-)x!K$`7xBA6$ZdyX;%{*|+H*)*c8^p&O2B@llzJ81 zlSw>D9){A$k_4yagTh}5gptnGkxE+dSK|yC6Q0WQei#Rp(ebyOT>PGR3d#sHEQZ?L ze-SjXLx(OOIJWdzhNIW06mIG}X=VL5n1}iacAn;qaa~iGeNnYL#GCj`7XGSa0U#>L zv=`85i`3~xT+SFOr11$Vw#3OZh?YrqEio8v=;@j(BKvZ2`E&o#IktvFhJ06l_Kl4X zd9-|zt)5okZXHN|@Rn=B2Ps@B;g8{QIsemduS`|jD`vBfvISf2rGe(d*h0gAfa`P)q_QE@4Nrz_LufS284Qa@ zr-dYtJF`2ouSlW3vXMHBxsMOgemwz5eT5AY^kusgTHq-#U>eSg^h)9>aQj6rkRV=r z@F`+waev`9^W)vEehp%P+dF(#ekRMQV#2kLHygi*cbb~)_?wLKIM$Ng~#d^PZ+uN6u>HkEW^IceMJ&AkVl3RoYuJv?5`-EgHf@i zA|;YzI|SF_q3$;gcFF-|kK-6=dJ$is=^c=nlu4pNl~?#6nXX+v)6yE67`8x=tRohwHrd_i^ zF3k(yyjiV56sKj%$mYopxnagIIF#q`ZC?-bMbBVu(UAWj?eAp=;=g*9cEEvH79MTSSMCF-HW4hQe)5eR#2fOoG;s+o06<4 zobR&vePXn!lN3t`BE^8|YE90X)WDrv9880KAjuiI?;GK3ZCle2J+Q;>=A4Dit$@y| zp7`XbSbFTzx;{>TGK4N{AKmv})Ip3!T=pjUeyExCT+HDzC|~Fxp!S(G{clOWw;UJy zE8Og$J|s0(A5`Odq7*To?`;=Mm=6*kpRl|vA2d<^13`8ViJ2!@b4YJ)e-E@}aTCtg zIB!L@Q(bsR(Yj3;DfYcjORzddR%}nIq&olA$VFm)zwD!;Hus?IVkd+%(5_6AkTT!z zvt&eq!=-lwD7Xn)S`_9boXKhlOu4h~c6cq*=Y|uIq8UWk=I?*kt5;Dx&aL5MnhC~! zkVH7i>5a+Hmq3q>(U<7#iXU(b3jJ!=eWk&d^!b$(QoIUGu_t#k7Vlb)z%A#xxC**{ zPkDx~yF6xNn*x_&8B%ords zBBgh_X^61+_FF%P9X?+xhn>*}Q-4QBjU(0y>M#Zj- zx}_{7&V-Br)PsC}_CGq`Hn%+^0^HhiXp7uXa6G0lFWI{DzUCO*YKi5>9l!1nKe4e1BWDn&>OW{N6m!74|2ko34eD)k;k=85dv56d3!{ zoU5;$BQgX$4fw8%HMZs?>1E%Uft~Y&byH34<;%5rW&JA=sz5Kp6axv?y{eqZLqCZ} z=!C0abb8s!I6sNU=)(5?CxzCSO3LJF6h z8KXti4F$%@-`s`n`zVWi{fF&siRJ(G;EGp(1xwO@^Wg^w&u;O0DeQd;%k3;FWvP2V{q&njs&dusyxe83$8w-uQFgF5;r zYCqCAIopsUK87$;fH82q0kb>;FH;#a8OTn7m_(hXSRzQ@P6hGz}s zly{rkJC|e8vU{;!fic@1txQnQWo|s}A1=HMMB2W{kZ6iuPZzf2COLxYDYWr6#g{{qFtP(^8tV3(oi>P2$_te5+{7Y>;w zgzjMWx7&nkKAEN!q%-h3H!I+;B}5zBxY7Bos4U`~w~92I%R7%BZu+1Zl`}XfVuq`lGt#JX$=L=msN@Ssau=yY^d6jW*{7@}MF`+l7^;*EucPBZ@t7 zo68>W`a-QSALOrdqSUg6kmlbM zuD6EGJC6Wgx)E9INbJi1S?S$OYq*M%yx~Vi%OO&RhBCEPzl`(uNTDp$GUn*Ma{zyg zlgsV=&i8OudEvvnUkUb)5~)F|4@1wRUz@K*`l#lEdL$h`m6C!Ld&5IHfb?C?NtPYq z3X+{}!){LYJK+~+L*aW`!)EM{Pq)NKKPztxjdzQ2M760xsXghbkK_Oo;o}xepMB&+ zeTw>#$~A5{ytG%1v?0nA0zdK;r#SUCEjK6yf4C1=WM~fYdY~C7Ahq2r|FZK#c+h5v zNt4BDcO$8FoJ;&(^VR1rlG|!t?oRIATY>KMDc+dPVmxSLv3oSOIiuQg^1DcYi?TTH zeGN-J9CW7sB&wG=lZy`F`#Y&rJnP%&{-#3tthO>x^5NuED`|umUDKWL7Z{_6!{;G^ zpxI^eynAL4hk@?Xo{8*CllEo8k=E7Gc+|wtG=39BZn2e6eryeFFVe#R*e5~X({_JUe%s+nn>pWi_NBOvs!lE6l~E`fh<*hlM)S~f%fAiEx7h3j4_XtMO6zNj z4z~MoW8TWgW6@uH@Ut4rQi)y1(R2AJ+cnoqJypIj<_qTDXKUyI9bx?hd9QOi!@}VR zb}l_9O{prEu6v7pO1g70OkeN+5wUDK5Vg@zD5}vw^z%L$CdcqM?(kAsY@q${(4AAa z=jq+ICe_&lPALPXS2ik}tWQJUE9LwlZ~8%a7|zH~@`cm4+Zmg@oKFc4p+>Z5S|`s_ ze^Oz&X_zAT$jISmYWS`*fw&Gwtrnu~Jxtt|#6V8Ysx?fdlW1r0AR(RsMuz4w*@QDD-g@Gkn~TiVOcTR33i(M@ zdX9>poX$aF#umDGJH=u1T5S&b#gftF>uA5X>TTW#5pcsu~G(AW7m0*+AO z)eF1D0_#^-ZI=qsubL6b=&OZ~n{;W#7^3vTGil>K<+mx?U>bHHBPjFsscJ%%JPw}q z4Dn!+m{SmRE8WfE{_4?O@%GRo9yML{9ZP**NOv{B%@wYm4y@=-ziv|+RVdQ8Y zy3J%`B7kJ8&&aQUV${8;OiVQR1$Na9HgBzNWIe-oxAtE zpAG?JEudm`h(sW0unXTaIa=F-3m7_`M&J-gkS88%E_E*z;uhyx1iX-6842xR_ zjFqX$l1L6b$)@j{>>G6|Pd@cdCzUU_3}#}L(#uu`!0GP+f19bF)`OQGn|S)k86w1B zx4d`scErPq2FF`cyP-Ysw)*4I$7dFdW!V35{K3XpBTfBts*IZxH$?6ND zb0zJ+Bo8d6DTayn|Ed99w)`2{e&$)!w~&HCLJZDHW^70#lfNCd+;S6}URYpGKIkE# zrH^A}ui`A6A9-a|qba<=spo4q1RhtsLfW($9&N=`_)>@KH&1QCLc0oKSqOtKk8 z7kiw)N?zd*X?|lRN1TpPftEzj_5#-E^y5KCCEBc>>zKc1=lZ!p;Aa`T9ukqL|B}ND zyaG*pO^(geMnL3g>$$}EoxW8M;%O+c9D)@x9BJo2DmUS02jSK!cCmW%==*!l#p_ph zg|(KXEwH~6uxs_a=cJV@avKvdSj($Kld(7ZBDKhV>`vRzkY^=E@lc|h+w;(^c`lZ) z=F7p@p6K-h)_}yp&{&E+3XTNL+1dVmKNF4tyO%ut8uMe%Df-bOcRx^w>f?PFJPtJx zg{J*hld(9S4QY+01Jxbo;b^9fYYUDUm*(O7aq>s%V)O}de(rO<4+c?Hx!u`xE8{oR zqIHAKCXNe6?r(PzYW|(Cn!Vk`nIkVVA}YuwCI{(inNg?SDlS?6%ef7+@$+j#aDZ7Y zeye8gWoo9XdtvDop?su#s5Tq*!w=@Mo`q@J@eP;3x`ypj?mkL)M)ii9Ohc`!-+x0H zJ4jQhuI$;n?i}E!>Ney_hAoREg6%jhJyLf~N~W%*+^-}rcT*CVTyxZv7dkb#=^|b7 zY_Xa*8syBX5k50JIq_UEQA_(|al%{$F=G)n9}RcDac|(rFCkbD`^h`$TVNb!KVyHY z&|W7A9jQb$67sL@-Ao)RvplU-WiREyw{r$jphjz)aN&pSqyWE+3QrQqzW<%DlIzx5wgY`|n=QFhem|C)WMz9xB2`?XxFdQ`MiQ zMo}LI7o?4gC+&ELU+5=wd`UeH&G<`i6q*(bJuk$#tP1Weti2uGd?6;jc{v+dDG>fj zY%eqe38gvP6Nunx+TF^}`P^Tb+eYaQT|ZAP_ly)TcgYQa=iG*bF1h}PZx-rTjx=1~ zO+{?gMiz_dTj7wGcFw0phHCRscYE=l?Y}R%>wFNogU5q$a6gcVl2+m_s!!Z%ndd_+ zrU0bmL8Zd-CwRI!u8Rd0zR68SCrv8-+&j_tEUPJGFhhYpowROiW&)=PtMl zvVJ|jNjy+{XRkQjX`jJn_Ux02_4K99oAnoN2MnIb=O}C^A7%*+QH|E*kH(D|E6u}+ z$yq-}8QsH-sjT`O``L=~a5-)7l|FWv%CL;sun8lmeK}11ZffDS^Pj6B=J{fVPpBcNYvEz^v*p#*|ztVa)%TUhm@M&6Z;6cs;|zq2fIDRZ1R zDLJtMu?xu04^A6%xmSLq_mIn!x?I%!acQy5_lW!`gZ2pQX+7nUNTGP19g7kY*bZ|% z&shw+CYkiYJ(B&pA8PM{2_{PE1KucwlEBU$Jrm-#O{A}U=BD;hDI)TqyD2?s@wLIi zy@slu$b+#z^SLwB0XKW0@_ca50mLrpqM>_Pi<8gRGqtswdq)G$o%f&q35gZH!%VpJ zPuBj{anM58M<=B_#$Bz)#bVg?PRec$`pW&GunnZ-9C=S^klwwP@}RxG<1P)|-k{}V za2nicZTB_5LQUlMI5?SSI8~iUV!)Kwgb`pZN5w3SV_f0&o*1G{V@FQmMegKxKQob) zdcX;_x4z@(*-8>Q?={~=DM7h`^4FD>BGy=LSRO()N&t~(>83A-+HCVB1d4muo=HO+ z1nMS)0nG(f1zMwraa;Fd^{Pcv$t#Nq@0T^>$BLU1EI)iu`@rX!SGrwG0I725N(#%k zLd~wi#2ZEBC5dmM6^1lO-iqo@O@rKn_GqhJ8H03=0IDQJw-VkYg}ml!YbB~IJEfQE z^oC-*>6WKA_Ra$#AC{b_CRMqQ>sbm%BJ|SEYI%qJi5InnVebOh2e}FtJ=1LJ$c`0< zc3v4aepuBoJ`|@9jl2b=>Um|(B;LTQm8Ca}sC zj^r*L*y3MPg@F>7h?vC7*|dJQR5~?_TwO%lN0>N!#aMFhkl*ghg(pL5!e)dergQi3 zI+kQ&N}fh>>8d3^ET$nai+#AKJ~L7Ybpe%rELF1W$lZZrS4a+@+{uq_2-EzHXsZa0 z*TU3XkK-&_sS<5u^rQg(g$mBGiJ!jNLdWc$#Ou$~J%@3F=pwVV5h6qWCABMdC2E8Oa3Ln&y<0NeW7cg{PYDPKluq(sLZP9G+63j z#-8`-b+8!-qJL^-8$gXuk)~pf-?R*(@uYnT-N~W9(Ur3i!lb%`fG&$L)7Iw_kS2%+ zWm4Vm#=n^c?Vt#Eo1{v9WhdM(e1 z2>Fu9WbGRujioi&VK9UKlbs(X)ey zDDE}`jh$9?L$`SLwU1e?-^F6V)xP5Snu&OK>Wg~z5VxG;hMDu0U!v2&V_S58LVv3F zx=AKmD)Soq)}=mjix~W^Dl|67l=!bRXv2epub=(-vs8mWHo1e37XX*_Z zX4S;Y>>qykPCizn`B;GP&#Q(8@5>_r1X#<(>wG=jz4&_QDF5Kkg?ioH-x;R0Ta*sm zzPGEGZf)wx+|Hffg7U7lx39RA3?@r_n>%8#QORQ zr3^ziNbf#jz&rE#0;^-y9{pVvdxjUE<5pC1;#GXs+V4#`zO^&7O*J6&lS%?P3vJT# zjF7hBy6webT1JdV*R;PY^oL^rNHOMJ9$unB^-xEI+?u|Evxln&Nd6FJI_xp*_hX=-)SNsfb8@9Y^ z>TbsS9p0jq{#K3af9aH0czr)HTUhw=N9==V94-4br}k<2<<$3^uWW^_ek%q}kyR5_ z$1%jBH-4lSQxlPtUw0zoujVAkEw@51u20)m!%7eNh_^-!V_cHy7GZ~i%D}hRJimR3V0rs&t?ZaO zi$StXPy1aoP&Lv6);yZUECSy8?0rJdkYVn9;cMMWxm8Yl{pc#?K}i`_s}FM=N9Bml zdqYX=-*elHJq9~k3)+%L(rj*7G>DBlZ$IK4#o}!@awCcD0`{M~jUgry+vzaI9#~P1L zA5W$JBqSuN_k#yBElOu%dJqSnh3tOTWI5rz^ufV;q4Bw?{TR#14Ks(q1G4Z$Vy{n? zd*t|o?`O5Dn*@q1;>aaG$K{eAn27~XJ)fbKg?94-hcCDc4CKUMV$DQhsB zYEnDJGIcjDWDPZ7cbQ@6W%HAGGbbp9IPUDd$)dKJ;;}|u6K)3mk!yi2yg{Wgi|7dgnYhR0U9S&D2V$xG zpJK7<;E;5*aH)~|i!`n6)+HUw27Kp=wdwyv+ZEci_`=TkUTdG-`IMib&Fp1uW3={; z#!Fnj`M046TPRIulAkVtEymL^m`9I??w|+h`zDz~iSIVJWHo#n65iUlhv>g~b7fkj zTZ5X>2x$EMFruVd10T{ZPV;0=#$0d_dKU*!>m^PiWAEkYCvLq^BVr6ZcXw3k_WvA6?pgCaMarfzU}iBA!wQ=^!!M z#WreSazJ-N13RC3G@o3cXHBw=b5-&&r17G z+PE|-b-dQe>EyR;H4<8^d=FC(eaug)B0CARpxTHO^kR+5+ zD%*2%v%ME6#7(8g^)ijA_q`qkI9O$g32$_252`_)T#?940d(&IGduJ1v+9VM@7Ge5 zIOH1fOnpo(;>J|(f_hdQe`oIhEirHKQ3Lv}hIw0Z)vsOT=O4wsEe0oZoaWLw*rD&A zLuo7ks6IT$w_SraIy0kD2<;i_&o=d)uxYx#HC1(lWtv+hHQ2WM7w#@@3H*Q#EC9O$ z?ve)`CQgP5O~XAtr+wgTaDUn8iAOR0-gM&bK1JDs)Q4Rc*j4qIa3t_SI=}~w!)UEf zv2T#CB6m)e-R!LT8f;sC3y?gx`$0u}Tgp*Mx(Jw`?!TE|HZZ?@Ob-oUey4ITi^8xE z+3r0P|6ErC(b6(%J!K5)r;~Ke$v-aDE;bi?GAD5h{UWkRf9rG*V@LbZ{(#Yj0-R+5MOxSJH0$g|8j4lU zy+XD8!69j>FyFvo;@Fnw9C&8E zPwFVchqXQ%eL{vr+FA)UI!I;KIxEs-y`q6<0r^?q`J2cy?3=8)_6x6Su?l|9`FJ1L z4RHpmc;i9LoNd>EF7`-FS;iQe+@=5oU-VIH;bv7-lkKfagYmFNsvvNz5u#~>duRL4 zU166@j_lO_5Xv1%nB;7}b05V-A{g#u<7m z9}yUoh6)NMyZokM@m`pnCYcfAsp$BRHSl!^y4-Sq?*U@(SPJoi5FwY00{aFgnJVK= z(mj%|lZA7csl5l87B4@?zxM$*B};OSE(^~@Dwi5-s`+i)<56^l5IhF9s0D2CF||oL zu*HvmN|qkgSHOKzx3!^%gl->Au*L1I(0$189I$J>9o>?eAeKj*p=Dsk`Nt-Q0}>lo z>isSBpJ-kfW*j54MXUJnCHXS4igt+1c{O%jq%`aZ5k!ErE3cRq6mY4MKOYZIj#caJ6C52O~64xclkt}(Y-60ZCCWn)UAUL4;uMB z#3Qw9BwFo&f5!v<{U5ZO3jHB_O{&zSR*jc%`yr&^2YYw9Ow}+{x=IPi2l}^se7`xs zo89+@f^?A$|9xc=qK5_ZHCd02cmK(YhM8TfhVh(^sB=q7ueVFrO24sGH=#`!kN_8c?`>?jEJv{bXMl6PGZU>UlqYT}LmBt4Jg9LHvlJTNL zObb`DCu&3`h{X(*gvh2Nnp!=A+hEE=X0E|JroGTmqojQU`}d7jphHEto)t^ zGvJ!($;s)lLurbLA*H(%;usUkez~us-;GaT@fO9YplulMO#6O5KiQe86bN|Mx;HG6BD57O`*UaY>+hjB@|hJBGJ> zt1L>m@ALHEY!ln1wa%ILvNy4i5G3}mad0_c-(}$yG1_avcNHZwe;s2MKHr&hhn3}p zf+594IG{#drge^bV3ua~%1suiVgZ%G`lhR1pVbG-?Xn1t-jRk58CZA_ z{Iz^*U<>_Xn=!%RVkz7s)Z`oY-nfa(@71ojH`N0iOOE<2!6>Ad z1oq*67&U;m8PNI#P{CrB@sGl}QRI=tk%UUeQ-w6NJ!+%i2Rg~6;o8oVmeqQfGtZK{ zK*aMtj*4ED1cJ{L?x*_`Uj&8>(%oXDf^xRYDu(;y_n1rMXNI+mKK&`-$boA`u0OH_ z{f$M(K}bIf;ISX(hv5zeZJ=MI3zBcC686rnS@d3fO3}=BM7z1U=i@C>=X`t6ca<(@ zV!Zu|ICfm-8!4jiqioPLpwo`vuurnR`{xKf&>yZB);IV7iHtsHyiTKzA%XU-!kJxmb>j!|wqmuH^535@C*Wn1qZ8F$`oxFOEE9dK7$n}K+Mc=9Qx8?p?^#9 zIVZ|pm+sNl*biunE9YAs+l2;rjf)@qkeP>+J;MMbD?sp0z!V~FM^@fHT&k^5qd3vZ zA`sz%RRU7UxcnIlJh+PG7tLv=$cK+2IH0dRhl9z0HADg`yMgBZ=>V|;U{bm^iiAtL zC8nBk4fn)cZ2q-M-lZ}#G?#CzX{4}vk4LT=AO&c|$HCCO0rsE^JS?Nnu9J$a zo`PjtH(29V3L%DbNh7eC08pXWvvdwahz=(9%AQPs& zmwNqRZFon6@5|xZ-t}twqo3L5-4`EqTh{N_ud4s6Y?3txZhuavkI<6)u1*DKsD5pS z&v4&J@|hf2{u^DdXdf%a^!Q3^%`jnPxd{rfAy#Z zno22r>0fv;>RO?+#Q(#8kzY~jkQ_#PfdfVOe8qn1qmVq1XIDPi0O7DG$mf6a0~a+? zYH5E7t*1YfIQ+nIpUCwrsHl!^dj#MF3R+7NBz$<{du8tg`ai~8ly z;o{+i@r%)2*EoLi=0*Ao96ovZ5vDciz|T z)6~XsgaPTU7j1resl+jtvm@AaUE| z%P1`5^l(Akf(|MDc!#3h2L9JDI>m3ez4_8u3h1=Rh@%L$Psu){US{}PJgfTsiK2{x z6AZ#g3)&$-JGjnDFsIHZZEG#6kfFYok`8gPO4(=lU0e4G2&h+({SA1Q3`9og4S=CJ zz>qy)$gM-#CJzPQ4T$W)C52h6rW1u|f1srr!xw&b0iI0pJY%F{;F2{)z!EK_%@K%8 z1TMux#cjt+1uNG)q%Ii}%`Az&>u#BSz>}%A$?L$tkD7e&5v})Cn>-Jtgr;y|m1!G!Jda+afDQP-gzEqV6aoZ{ z0|bm)6H^d(XI45}uM7LA@XJ5Sqv}gv@cU<~eON|bHfq5m-5uVy`%snkv01S11%#XM_k@;_g9r`>B)%~ojJIIm z?}^v3LthbfOZl6rBE+_+WTn8tSS?oO|3^dfSed@oRwUNeGQk?99tj6y*dz7=vp?>Y zkz2@t?rH39<;E}0kph5lJH(4Oxt~PyqztuYgXe!_Kx+6`_ysbBSlEB4CPeT{@sKmp zCII_X1u$R&Fkt#5Z=u!rX1*Xp+TyQ4v`5Mwlj^iv!LkYgd_w^?#Q|)Ls$uuz9>F}y zC{|UxCHLgw2S=U~3cTD?Ma6x@g1P;+aHQjf07~17_kN2)a4APh7;P;8bnQF0d`%we zw0W-#Qwu92z=Fic;eBj=wCvstrWn|%jeeUWVGLl(e7`2duGS4)T>{gMzt@BQdca1x2K{S;D^SSti zrK9&V|EI)G-+SocLV%rKj)sjdsy=+DQT{b=3a40Jh9B>X0QvVI`pj$&+}d|Kw6(Z| zh*_WydjRK}pY0?y-?#+Xa%62&HNGaK=4XDubd`z9O`qk6Ru8YbaFtPVZj(O*Ucdtw zO(RhLvLMtV2o1*f|K>taR^Q04T{+p*Xi%f} zozQ>e0V}6t63HJ^m-dT?J24WcJ(lPKI{|N)I?FOI-W%^hZ@O4GntF4uX(PjZ9LZ;m z0YaEL9HM5g3~0W5WvZOBL0!?53EdlEOIuN^HBWR}lFSE~;d8(S@pnT?fV)E;{E4XGGZ=VXzaNt?M{5ICBY+`=x zNkwAr?9*AAb$(B3s^EAEvz71iO+@rhxz;~HIE|U^s>*e>t`{~1 zT4t*LwofQSUf3C1UYhvCa`8~=i{9LUVlz4od8wceApBDV;UA6Z$VcK&JdYzu@w|M$ z!Xt>Fw*#hVY13=l#mp;z&$P927QMUt{jh(UMecKGD9>Y%l><&A0H+EdgAFCR9Hn^` zGykNceQK!lq$nBPXwMs5mPKti_k-ec^6(ACnv5xfLx~6ofD|zp080PS2;u`^@l(_&QYe+*{yE>( z$g{CevL6k8X4b4_U7xb|P_x*`6BpE4EKkoN|vhUL#nPk(DeMu1grKy^F_v3Wr1Cd{5)Z7u2! zO8BGGBl2UPI__}$=DRkP`pScIVkc;@JPU*=D9!L_!y3bkTlEG0&Sis6;Htz>trziO z2HHvp?UdMwfUQ}V-2qK2SyI)OvPzlOuu!-I7^Vhj{~x;oRUS}_KtAV;OXCg5R@z1- zRoNKoUYmPDUeSF}olvOp@=;w1w6v8@3)n^~Xr~5Hqh>ndqOD+>OT|rf@`%DeRVJ@s zZ!|2OF#mJdr%@z#>h-|r?1}$Qw((a@Iyr#0T+r?bu;YB-J+xrrL3tohw97w zhm<7GH^j?W1CD@C3H%4oi#Z@$ess%`>K11jja(d44!)82&B_(m2mU9g?CKpYbCG;>MVHo2^VMEBbnVkLr`=Vxr~8a&ig4tpCw2 z1|Uw>0H8kINZG;jMAcyTa% zum)xS;40S3uUBBxV{JP9#;`E--NkD2YP0Dn_!saVPr!=ce-9H<2E2!4Q_MVci?@>h zbe6ncs{RktoDvzU(WNN#abM`61^_DynA>HSHq8lW!~upNw|@AJHi041g3>>k1|j?oB}Sx4w#fb+flYeJzMd!VMCI`ph zmr3s$rO95V8&-GS(hYFERaS~d+ONu9lcon0MN%)vE4z+z2VPg#8*`7&KD=pGKW80y zLQvkb?mtZZc8_8if8frNd4s33_=ER~I>fK-gwN-hFSt>re zCpCw?Zm!Xc<43l_y;4P6I+b`^k*XoZLS8)^A^as?YpFvrMp_RLD~f~Iga*WlG@tIe zEIsGkOCU!*jiF>1>@v~sFL^2uFRbDjzJ$#c&_T=4ZVHw~c;Ft|A-opMZKhR*Zm;le z6Ahm?6BQwe-!vAepM4%C^;DFB2LEsYz0-wNdQI#V|G@b_e(>_53 z(eSpTr~Qd!f4!vCv10t!LL4(~(Z|q|fG#kU8RF1{7tDjb6Sedn&S3%p%L3GLs2W-J;JwPz$5s@|!JaOezLaLv%&RU12 zXigPKJowD$#PVP9X{qw44G##l9Z4l@xjRHeT)fy*g$ znQn5HuG@-yoly)~!XarsG~xW=XTqr{RYn4GJCHjRbzwg(lE0fKCSx`5~g1R?*4HO&KVJ-xsZaHq~Ip2>}`I%``mssnuXh4h| z1!8QFY-@{u%}9kseRG?JOT5YD#*pO@WYdv#kQg4R;s3@@)|kdDu0Z)8`tCNU_1f`N z7#N}&HmUVWt2ShGM(-##gt~)Fu>oX?hKR$0LPo_?BJdN0)}tQxO?I!c7sbj@s<8U);u)L$@+QRh9jCdDj5zIKosWRhypTc z12Spb?AEs~p5MAZJNkL3t-$@L)|!JKwd}v%a)GZ0Xmk0M1L^Al>2m<-o41wm(6%vD4oC}gWLlC(kmY0M zC8?Lmza5Fi=8`^e_{LTc(bs|@BH%7S_;o<|185<2h{ZMoAfW^4@pxN0A`0U4%xZ(& zZZk0#(PyNURU61w6Hp#70m%msNIn2w$pBu-B79SVCy=Q$=eq;TCn1I7Tcq#SZYQSL z=x&Farx6++Va++Y^>b=yK<#y{ zb1H!yIx$=*5C%&Iq8bE+4$H=}F3Xcu?%Ij4)U=(M#JMee-SRQw_`uv`9AigTj$3xAGD19&H>3@w_Fb!i>iM>r-tEI`(bpm*rs zUJ1B7^iOxKGHVK~5I=w{aCOJWSSk9)e%8HoZ!6SoMS>KG6ZmuzSfjERb5SrHeBj3P)WIbx;$wwum}-804>b{C@^E-?~K0%W{y1V;E&iH zSUY)BxYQeNdGxc^;4Q_H(G7(MHXnT>8i>3C{B$KEsWDTb;vU#X*{%+mrR%|pmRhQB z=0{UM*jgcTg$=gU?(Sz%!}kNgs{ufj4M3HKK$V6krtAsxVX2yS&q#79@pTRYy8fO| zVvNVkSU{~DO{Fb2B7S6%87uVg4#F$P&|{Udiv_e>obS_NwH2W<}R?Zuj1!g^z3*c=rL<|by7Q{gZt}> zcuhV~>IAKb{5!!vJ3Sh0^iezEFppS4)Wn2pAkVKELpy8}Qnuv`3$A-O1hs+MS{C#F z{w`qkG!*Q~nI=5ke$b8w`oRF=Lk3z`}VSg``vhWLqbAvr6q`*NlHL<8Ow#!;b3G!)t@6^8Oqyp5;g*sM0w1?wBM$rcNH6v70hf-=;^hxE+j&5ms<8rF`)X05LJGAv z)4wDTzC$VXq2>Z(kb*I=!5G*i9caKxpeI^1BPNiO2?m_R*d-JiT-_+1B5LP3Gic*g z{!}(DTJz#Ud3r`9TphGy2JOP}Ok$<{bce_s!F74W8JU}Yk$W(&LPCW|hfnN>jco;l zSASi+eT>q^MXLjQnp2f?;X;7UIwnQ-uzdBYcBX$vGTnm{F@#>7^4lS5MWa?j^)$Yu z?q7eu3&hu?VpaI4;^_;Ekekc$9f{g8mLw}lAMiwV#G}!<1@#A>$Ia8lmCr9`uJn|5 zZ@8lkU$z+UuAlc_o&Dd}9@R8}tFG4Egr<3guKA}`-IFbvXXc0OnUu~R2n$E2=SHX2 zDAvr(>^?Yd8T?(Vww^p=eDu2S_xAew&1y@I^LgsRF?ds3P1v__E1nzQ{pRSI?+mxG zNc1Ia=qz%4YKiwYDR9&0VtTkFsu1c3=nWN6TFbAh}HD6gb z)E==v_m#F6C~zdRav@A*6BmP<;P)l}K37uXUz>X|y88Q7#jlT+Y}??Ld>c2GHj*ZA zP5vP6N=>548rR~PZ&U3ccLY;|Ma{zRFLkLNbsF=kzjF*(ir;t3@#kKq9XMegu>4NQ zj!Yle{iNc8M98NUb_wY0tccu1{Tb=EP5afu6EO+<7SQ*$lT%>h?(=wWUPhe^kE zRx^xJVuM>-3?s8k%+5*JYw1^H)+H|ku&mW6^3;>C#f`I!$}h~t2A}`^311R+3Z7>! z)3+3#qMG27EQYNcoKbKY#D^1TNLSpm5Nl=$iC3^uv0rj(UL`&}6D*^5yc(RtM2k`d zG}1XXeoC`vMh2`^oe=2lAKtm&pC3ovPfOp+-;t!`91R}#Q8!YJV{?dCe=FO#lVefr z{jtv2YyrHjC0Vj^H+04o*8A|_nC8N96NO~Xejz&lBa2*wBX&!=AQCKzW&Q_9wKEbpo( z&;2^~5mG0iCT#BOq;T$)-vLh%36;+c^CfN`u2>O@x_fVNs0rGymiSQ~HxB3;rS+^S zi$0cBDvfF!7&)fyUk<#w^R>O_Zf{&ImbOp?R&gAUb1Y}3fXmieni+Z>LD9V*=59>3 zrxu4;`Gw2VzYt7Iu)Puv%c-YDfhM0=Gc{LQPz74F&tPQM@3}7t0sx zc+0I6?zEJXTZ7bayvlFOcu7%>{$eb&?f-1EbOalgZmduY8@8 zPr^Wb-|u#R#mz;aMi5R2tyIuI`|WPGwGoFbnz&}JUD^DSYTd!2kzS_G_JA3epEN1a z&`WtQ+>0cM-%Sv4=dHAp!x2k=@BJ1RK?Q3S z&26s5%t1y7WfI31c@BpI+gSU4O7E%LXljc($`f*apvnsIqvxg;4nI`hQr#0fu!h53$xBQ<7rG`i{J&Nx zUKMe}{g&`yp+HOG7XTl>fSi%ri+#WR)0@bYe@jX2u#reRl*>J+%GIM^$RbbQm%+UFo@MZwEI0Zs zi*!IQpwT~j0FB1!4D{jB({yla!!G*G;y5z7Gc6U161p|QIq|jCJ)4Q@Bk3v;!~Rr4 z!dX9*e+86*l(dVnqHi(ywj7s-^Jb;UJPeKo9!Lu<-^nbzKxuL%key7c4;|oV)M}mo ztUiovLo3VkL&XPr!2o(e1;B)WdIUZ#ojhnRE`<;^;H1~ca3RLXsKGNMn|Xrq!SfB{ zokOMihDZCiubU;Fa0TUysqbH+nmZAop#x-~0%SlyUnqz}<f{I-g6G9eIQ z7H&gv^+ro9QqsaK^}+5-mj?^>4WD7+S19|F<%{UR4nU++3jy{E8h=-^r!v+TrwvO$ zzReOXEcAdj$>Xe)1u|beuS|ZOHoV@OCA&d_D}Q#~Y|$>ylruAD`Cz74h}yStI&wg# z|CwmNyyxvZg%+uAlbRgm&z8rZgxgo5Hy!bn@;K%4K+!ts`O&zd$tiE^(6kXgiAupB zUbrf8wBETG=?xpu98BJqvTM>D18*+==oB0JVqtr7I`n2~Ti~@9%3Tsfp--N@6*uqq ze)&(bGJo$GMt5p2-E@S0<}hL%6~X@ zlH-g@ClXc$M+M*&IJ_>^2+e2fq3WIaP8Wz|N9W&Xi9>DVB9Ab7F=`P%8Z%P*n%s;< zDv0c{biWyyG)_LkoTNiEoUAa!&hL5V#8EBzbN0BF20n>jwauS)OmF%}WFhn?@3D{* z9gd95iBkBnCuKwQU$-;aJ!=#3B)%i@;(ktLr37PdE*(#|!z7AclY4>gX&y@#G6%}y zzeRLxWe%+jyqlC&ub9fYZEzh^S0D&BdEnO_J9#o^hGuT=jL1Rg1wLRQB?hs0pU`*a zZG=K;cy)+T{~Q(MRTHwfFm#EU=w^p;T)j%SZ;mHy`n^8f{K~wDwc&fIF+`t;R)!=$ zqw8dpC$iqjXUXM7fyd>^s2^|1myk>~`mZ)-jQRvJAxt*K?|Q{c^vHMW1-^+jro1i^ zGA1otEqR2me>pQE1EH@1Onz^tJS$kb{d=s0>badW3Fe&Q}Qd2X19X zFwq2%{@WWJLJBIVZSI+&P&pQQ;wr6AoT20DIJJDzRI~=$=q0O6FwNSk0s0)QEU}*L z%z3Dwe~40+U1Qauo3F#$c#;+@ULabW{ETts7oqWlbm$TBUTIf}7WeRYb+Dd=588f^ zX{vti9Ei#Kc^G%$c9D41BY$xQ0h9>?%AE6rOEb#gu!J`66z+)=jf9pbiFAII&8d-m zv}xwW5^dmhyWctQ^!c{&8+t56W~kOk7(KckXcOVd?VBneLEK5_M$OlRX44LjmdpQ~ zbQxC?>c2Si9`w%$`j3@UC47r8kCTJEBP)DcZt?p)$)oR2)0mbM7?rKFlDVB)3!GC@VAUU!!cyQ$Om5#uy^;e>wOK)B#?d$co4^*`!)O8lC^U~&_ z0-B+T8A03S!dqkBo=FhNe422qKk&gjwBT%SMpv4%C#|_F$WQMyL703pJ7Vz#d_Low z-*X5ZJT-90PfRe)Vy5%-`M7T%eeGV@<>RJGlv;nhn)ZN)g!B()7_(H+vZl03*v5T4 zq9{1;=jE=jx0&+4d327TN+px@o?bh>oe)b;zK`cQ`bYCpM?(xUM|m0Az0p&Q9KWTG z6w{^e9So8&a>sCxFZBG*J!jp!zJK1e7wp-YO!7`< zo+p`@?6RR_li*_?E5PHfX7U%5SBr&O}|_1aPA8WWPj z0|5uS9mwj7z%t&&?(ld@rxy>`Q+GnVcdkot-L}T=NEt2b@4L`tp2~|vvY-G_a<*Sr zijwe0`Jyai3(Ux^Xvp%Zyk8Sr+Hs~njzs0gS54c!Rn+VjryiPFdKT~c0y!|q{w+{N ztvb4Q(nwhc%BqHOET{YotwFWOxj2VD>^a@Ai=PVk8~7&0fxy=tG{p~^$^cC%7G+J2 z7gg9ROa7SLBEa5~B2g>r&Nk(b^t&7AyV460{W$iFj_5ue5`B+Eat4yTKr&rPcvYb& z3&*)j@+BXF>mN6nL!jpicPu8?N}kq`DMR5#QpscLS2kvJMKu_p4mUA99x&TEM%MF=#klLJf?yY zyT+ua{l~o8jK-{8@oA$-BJ~D?js=`Esn?=u3>6oq#3VcQrG$I)k`wS1T+4};2;68``A+Y zJ}squIvED)LlPDUK*5l1fg$}Y0$Xl9g8y+sZ2K~eiE{>n#|pG%(CyuqJD$4cTeDE`#HTLVQY4E@>=%(s|@;teX9*nm7g7lj%apH>{i)ZtuH9}96CeCUtSu5xS z<_{joz+N6hyQWO$xnump;-Y)Mr| z-zmCAvdLUwFdSCX+1GVmQpTQZ^8A6D)*hbRB*`HayE~BxdvJlivm?Q{^hZRz6NU|Z z$nsM^=!4hLpE&4CwVR1@@$tWEoGK}2io$pxv(CJUjyS$Am*cuRJNPC`@G}=-)r%NO zUCammpZ<4+DhbQ-Z}y(Nq$F3?yHx23ok*V35nUU|cvI99ZOS;l=Vll5&?;!QdE*QWG)!Z_#qqSa;XA4n(Qp_%Iz4+M3m9vgq{pMS2={{zEh8e6{=@BDlr zTURzVdKeM@Esp{O+dy{N<{mvKNIU3G)9wDWmErsm;Nq;a&l=$+%7;Yd%enaFd*ls? zkboiV2h&QA5NQ}R?el7;2cG_PCMhX6Fbd8_;4wFY;z17uH=7R9ApUG3s8%^GXmr9g z%a7-0z7XdMIlVY+c}5c-DzRs#m-6l;7S>}`%)&?AfDbgmiu=FN?_pT(rtrHwTQNea zlvi_W=)!q@ZwsnoS@#fONfrX_&ux6zQqFrHq4eu@A~zF81c}W`>P1j1eYy@2&_7-k zWmUNYaDt!S^x~(#-H*tRR|@Fev-}tKVmP|&1AkmkHit8&&MFp0m52Fi7ygJ>a+=lb zXX||?#!CQ8;-DmK;3nlt=c%&rU;?w>X0AxbX|Z;DGdscNtsi9M+ex>yB*I$^on@`* zD?88Wu>I2Yt_uY8)mtz>JVEXvKyNyG5t#dS9=qZQg2iN7BT*t(C$nsMZ1uK|LgHXlk zp{>P6se)BM%C=Kp>3p5eBKv%@cE67)kizICH6#Tx77q585Ffa1G1&5#1u=i}C6fNY zufys$T=ud#+CQ z;lFlX5ev%9>lteN#!&Up*CmLs_Y6m|g^yXHL|<3BK!+H#%5-*td(yOOXHxG^CmHM; zNUCy&5(6fu{X+tY<`jjfUG0wS6a{a0;WQFqR0ch1FSg=XKf*s`p zw=4;~yL(%tW+w5x9*U!!=){+}lQ!%=?A80Av&dcaqV)gv?Q5pMw;N)Tb+IT5uO@-i zUk>>8ygxidSQN&6Q3HELM}sfo#7c9G0mycXqD&TP#*fmq&ZOXPs!zh$8UUPp6t42e zTd**BswyP`_2q#2Zr6ATk|F5R*0)g45XV|cmubR!9Eyp#orkuf-?2+T9N90pyMJLE zucHusR_{Rff&4X)2i>UC-au`C9*6dkkrxTEM_8u0T2nT`6wY${cIX-VtK7k7?jLLt z`U}O;`h+L!KHh`Yy@1OU1Y6gDw81@8*(oM@#nLsM23Lh_u5x=6n)0SX!5{RVs~+yz z9An8J9`j)*NH86?UQlA(f?#1Hg+%)W#^2Ek{sx15Lr3#ZxFnCn;-_}?}1K!Wq$(46ot%Uo{0B? zBoWyM!O4!VI7jPIfm2O6?EAQzU*I+`cjsE!cSD=sh0}_ii`4-9umRJj0ZgBH@IoDc z;Mj(S{LLC#D>1&o#1a$ynJ5M}mj$1Bj@B>hXjUgTw6dSCuzww<)vm`mIHxXrf6utZ zwyWEu;+(N?2G_erff$|+fzca@h-fGYIB^gyyA6CMddW)x6RumBKHAK($302IOtmY>;=Zxi4lKNar%S$eturwfu(+qO+o z5eCx0X`5@t>*q^$@2B6x4<0QCvG!LxM~(V@euG$KUBD2lr(hzvKCe4XcH!5=7;AgF zde|)Wzxy4{*a!E;p;Z;O+|Y)DU4n*MGC5mrwr?ymUh^!-_tUz4eBH!L#issWpoj^{ zqeJ2^_0(7X?PaSQ6&+?<-WLOdLu+6GK)^*GRCoi=_}R~*Dc|=+>pL28!?(v-T~8>v zA`FndIu{dUuBe3gNY%$D0atzA6Q3=kHT-*qG<-ByTckW`345HAZZhE94vQzXy{@F8 zX$!uqj>;HAqSzHG%X{;}y?0RX#-UzS9M=yyT@Q>J$Y48!*>nFTb6R9^`Q8q{y!_23?H7f|LC8a$5FSCgbqyGeT0Gye&Y+?CLwxSIWn9&ODIb4 z5k@Yn1fgs{H(Ov7jp+!wo`imvH)gM2L}LY7u;R$=#219^Lcj}<;b03yBO;Q5EdH+J zcrFq<2<_`N%dkLIMbwwujt>x|MHd0mnN1}$D7wCA9_dWK1w1|w;|VDFzypy$G@v!y zJ7I>fE`m$44!C#Z5(m%^WZ|!-WlOhFCeO!|NMEAb9!5`L(Rkt(lkgg~p*{0{x`GOC zu*tiT5Ybm*i?fdXfFlzIZW)P3laN|Orv+~U9SfT_FWdSJK?jOCf57kUj6HJksTN^e zuosGJ`N9V0a=+2m54?-Q;9UeAPyoP%ogb01FvX90-p=U03M0niP^`b5SDJ#{J@(Z` zD?P9M1WP)z2HnDf zST}fB;FK0&U+`_1%XX?cvQI(}EEV9Q6h< zQ~n4I8(alcp8<2w63juj0wVRGXO9jIJrc)nrBTJBqbjMwpCuRoH{qTp)nS_^Wg&Fz zd0TZm*SA;ofA#NyUWExk*EoWCu>3&xR@hf4#ry>{rw{&wdw~@Cid@W8L^szU*f$r% zCcf8L1*U=~P`nH%t_~Eh_Jf@I0;FwV zs1Gi}kQA*zMi0z?W&lOG2?xN2pdb5{=qZs!7o>EW!m|}!DaE|`kxgM`GCHiHv0P!I zD~lizHeSC#N8b5AQN{B@L~mML=t36vmFcnLDh9j-cU>LpvG||;9>^7co0hDH1=)JI zMWOYFqY~+dtv|bRXXVbLXII_;T=_h3|J`j3x8W-pcuIVlG&Ntf5-CBF8_(;C&7H)Qx^Vs0YXH#f5r09rIGon=GN>r*APEHaBJ3H0Zv&A|WQd+Sfex1lg(p$X5Tx z7Kqw=bX<`b>y#j{ISQjFP+w@Oh$?6nWHNKFYZNSp^Mp}Y=zMsnn;jMeH$@qZty;@W zvDiZO8-8TXtp86?zwVlO7~5i$h-@Mt>U(p4SFBvwIwY#FK! z(Nb^K5cle%y$1<=oFV-v6+J*wf?-d(kY|)yNRi|4ZkIh?XT+0u6!m zJGZhBZypXki)t!8$UsJr=q7-qQx@2p3ZN3weCtX37ECuP*=GLo{pf)m^(4qI8wU!- z^rPrPo-ycYQT}5drZSLrPJsl_0wjO{2}vlIc1VAQKVG!N+4>L1-N?RsKx( z&{@7%Q`l>?rGXM_1ZnXC$T~s7s_jIxY8v@wYENNL&Z>$x^1ncgc;j^2fWseXT~hB#OK9FsB+Y$rW)(BmFW+{9%{WD<)L2(&1gP|Mlpuom zPg`2xW3lOJi4bwHQ3HXGrTwK=aTwe<_aUk)4N@+2>Z|}t|K@nCl!fkJ$n^elAR=NIm=NLshY+QutfS37x-*B1Kq#6s z3R^?_sCP{=*X<0iIA1#Lz(Q8pz#0%N-hpKmHgYsg4!IP^$08rTRKy!iXzw z(=#(8+M{{8^$%jw0}vBrpy>;ssXx$E7-)(t^QLQ(_`=N+ASSb!KTYOMPiWjMdV5*S zdw;7KZO`i=%YdXo6uc+dz@$nbVx(0aEfK{xgcqO9hJWrGCg@w8dN>L(8jfKxZqM*| z?$WcX%@q5`)kXlGQ3A+Og2fTzA6I)$`-mKkLg z)*ZOfE9$2#eiBc(QSn9t&hRH8cQoJ(0Zzk>4qhjCoVq0NS+%?Q(&33IDbmvCh&fniE_c zFICD`-=Fb=uq)1#agCrESzM<-nLN(n>Kaaqtp=%Ze73j_SdKJ18cVbU!gyg zGHHx|yQDT$3s&9jp{%BEkzWS-55vs?!mj_iQ_cTRyW;mEzId$k$EusU!?~M6$n)+m z{rPjaJFB;(oN8Zq4kSSAwHS5UI`7JSa#woTy)bZ^1aOB|ySl z+F(sKI*-;T(dK48&cGZu8NwSFiHk1FGXSmM1{JH!)10tg|2M$bfwHt{PIBb#*vq!ALEkF|UkX85#`6;b!LAb)5AaDAP-*W<>rt8CHyEvN2KeMS#O zn;dqj$!JQCSYj3|E{TFCy~k(waV44IQco-`dML4naD%UtdsMk(CM=)(SkR_%95vvR zYqvWdj77JqN!>#cusKl2aHP;j%gxDz)sY-%bEeKVyE@c{cUncn&(Ctd$T&)+hK8LE zaAgNUiS3Ys(COE-=76exHCYK>TbWXDr~M9!(kGeyY?F^!9^mx*z{kIl|JQ&FM(bGRa}yo*=mZ#GK$qV;o`ymXew9IGFVcXA*wnn9eu zZ@`@r$gq>+$MpB>$S+34%W1d+X9F;rY0JYZ$Hir)dTtZ5!+<`3G{Y1_$qo|>hSb3E zSGsKczSl3zfy<(a*A1C~b3sCg%`zF6SgDBjFDf(qnaY#^Od`-}OaiW2^_j{H2UMme zaW3S9^3g}mm`b<9ql;q7u)kLX=MPnVzX|etCBIt)j>7!Rg}^uk`fcTYvCC_pez_-g zQ&dE0sAIJ+nl6Ss)$0ObHPMpD8LEbs)+S^3I@5*B1;_8o_?8-jy@_Bx^94x^c z6U#o-?*zIn*06kEmIV#r3!x`3844OGUhIrBsQ%coBYckD_Z`UG$JwhN)ue!7VnM?) z1{;Pc&om~cAyabr?<%X4WHGsf9^qf>6YjX;M8)a^ts+{;3aKF(OTV`^#Q}>M3?y@& zSxiPZsTROu7KQSC<>ypxbv_9Zm75ZqeOnDEIqhX?d+xn?DGP)9G(w5!9-(6^TF})2 zAV-}?vHJ!7qol|l?T;~HgRY|b3Hc2eT1QIe$e_mF|5_s=d?$pCb)|sVZ=fiS50XJh zAkGQgfYfc#5dNajx5jeXSZx!GxcD(b5&U}fwveP#3^$FU@E|4gRgQ-xOc_QmoDz^` z(u3r{cm-XC3hO?=@`;4kx9ewEohs-Z?D7{@z)OaMsOC|e zmJ-82$oTw>jZ*EavJfS8Sni*b1nnQn7PG0rJ+$tWnX&((GmUKkoyiW^`3R6qvA@tX zex@@mywkVg*Q6!s0A7s~>eS@GK@)fGO=? zqfNER6DO*lY721*Xy*F8wzIXrYNJuxMcr#^cT4Fk^90;EnFvT91C0o$qdd~SNd>%A zf`R@;b)yt*dG>>pdQhJ);NFbU3ag1I-zsl2s!cjmZ*)BESo%>@^;$AG69UxIg=M__ zItY!w&G0DnAVrFEfka&4QMX3v`LfJ&0iP`Wiv^7XoPmj0XIRZMlr|M|zxoaf!E~N-EooBTHk6DbM+>`)kM{ATtxhj?`a=iIQ z{gHg_Wt;D1x@5p5h_2^osy8+7eJ^7K{LPnBV@xwGrFj_V3L7XQwsR>WJPLM#!WU1u z*#E_5HtQ=xHUT!%0c3f^d435FqkzqX3_*w9`+&_NDGj&(+MtGDV892LW8%GE?-kDw z%zvsz*>X|QMR-t~rLii{9dh2yTG#I$uOEoCJ_F^Ne(5F%8Aj!}|5&4-{@N;3ke6E)LDs$cA#S%&U?_!95`hG%7th_bg#|CVd)`&Wa~L@VDhr*{23w>IhKTPLQbX#xPu=% zfWQhYw)&YabU2k7xxRBS+Uu{Vls?`p`r3Mr!>)QSA(DZ`?y(sA@$69o1vgSd=;I0q zj%-0B$_*k>A`s-1+7c;aylljSKKfNon;LUD9QWFxth;?zHyWOQl2Ka2U^z!4m3=mU zjyMf$dYBrkQa==9V{;iy=lnzZ{@Oqc!hp-$%q zceMwQhX7sGfvyZd*Z5pN^)ez!%}96_a|XQAnTxMwI=Tx(?Dm#EZUNegWMRbABlQ|) z8?D{EH~+>^lDGke;tMqI0ESuthOz~(y|3XLTd`m}LT)bmSLqQyJNOY&ledQB%Wz7% zTg~_dnVq0Ww<53u-OIdc=Z2nm(g{nc5P<>ym%YvVxnCDylJ{DzwUVjw;^Z+|n-ILU z@!3=@xM2U8WXy@I5V^A9r-GkW==?4$>T_w4tsTgaz)ReZ=?mqzqHu4q1;`__Gl%7|xh*B&H0ZvmhLgcX4BVp*sQ5r)Bp zg2J|mTKBNdn+`fuxqTK?mTm4{Uz06V<+a(@i`F!EcXvi?iWg<&08mJJ3rJHSZUXGd z24M9sn;*7<(Q`RJKZo&>@<XP=3C#<4mWXsHvnbd3SXUat~sVPu?%+vo6t&5Yo@K=L^Q~G<9(x zy8FQ-*Z?sym;|63ru7~~X+Zr2gksfKdcf35NmigH=2{i#0=`4niX^JkMK!AHPecJ`)>^^faOVkVgYs z0M(hm7Qp{C_a+C)UrPow+B4HAaj^}j@%|tvol+q-VD2hLeZ{uDHJb{2ct!q3PS39P z;n(Pud60xyfh2?zU!!OJuCjG<6xa{>&70NUjNr46u9CwuOK7SPXF@{F2Ydx2C>l~p={aNraka6Llr)?zw z0sdqaybLfzY91oa2_cu&(Lz;KRW{}_<1;=cLx3+V^|YW z_DTf2Y_NF-PtqE|Ff=!i?={=C!7&Ed1^MHK*Xb`U$5rmSA~~_mvV6MxR3m*0%eTSuyjzCK zX^^tpaD*4<#Ij{#9UtijTWdVNS0$tT-JI91@O(3LMSnJ;>6NYPIef1_SL(&LBb6ByGBgjWrFnA_e zPlg$3#foItWCAMbtuvNV%9UU4PJCOhN?Rhnb9Ddciq)f|5Ou8_v4`|wlm=00WQg#N z9Ib*O()*;pvp7mkv)0jLH)n`Ginh<_d`dE$4L8AL_&@vu%)V?giro;EhDeR;yi>#M zHs-`?U+PVJCD}XCB*`S?n6~xQqdvM{3yP|Qd65|( z4Vj%_C~qQ;konoBH=O5~A7-*A1mUZKXYnB0pJ0(SC19X2k4uobBV{r~Sw8&XZWaCF zkBZ3_(2j_K&<`6#aPpAje{&j^xH}A;ROzFMKSBA{e09+)&S}Vu{+IJ2H=;4fEDwB9 znw_Istod6 zd{i{l*`v{@oK+lBGi1;ykPhQ)&h8!_&aJ<{O{nN8s}I)1zdGUW^|agT=lexbU;OEU zcuWQ@jn2B_PzcQv`D}i3TxdJ}M)>sY#X;iQa)KbuS&vs7?v({xoNmqhph>9?hVllJ z48;P)W71~Mw;;)-?no`~*U6kC;RIqB+rF5&0uiNuA8Zxh!YJhc$jKX@`oHF3!gjMH6TX~iDw4+R9Gzj{lTvj_lo!^84C^1OB?{{wUoGe~%QQf+E>Jd5Du7`)Z!&ghd*i5FdroaXzuNogQd997$H{6^4B+)3{(3t%M041r-LVUUJ8F z@vl!Z2!iTn{-k@k%VKS@t&+rU`Ddfea+MPeE?T7;e=Bn3;YCZY)M(zYj!KA0xV_!zFPnDL^}R~u7W-G4Hhighx5z9-Op^WD9 zN%)aZ?V%<#7nLINFu_V#Ptrk(VS8Ve zFtD4e-KQ;zM3+A2rNB<1z)l5S`h>g|+4B3R!7gM)8T*}o8}hHySf)MM1ytex*x2AOOPURHn;YRpYu_@f`8|uj+kU3>F_R| z)FO>u8&Ss|d1Na(_LW6s7;9#hDYV2HMqMqqyQA8gzOKlDI0X6r&k1SAIN!E3&vQZw z9|VEXCH(g^EHu6$?c)b+m51sY`ao0-0pwk~nbacbM+g?~iUtAEUYyZ9YWcPQfhTJX zWtJw=X|C>ls~fKsqhEo|!67~xv9Ct#$fN_JVqf)y(z*25+2m29C`F|1mmjb279Ee4 zN!z4w?4q#m@=>sZZ%@7oSqxl5V=uln1b>cLO=15LBB5hL1-C3p6}0uI87=wuhRuh+ zWKU3iW)7>}_ea>BI0%eeu?~jaIKsXpHVgs!TWoPTdqqX@Oz<{J#S@Ud_1$M&L=Px= zyD}8@s)c;q_rSU~^FTcnwardq9rsKw(CDIEDOmTngM*5MeqMM`!uL~Fl(a?_cpXqm zanWn##omHdQ-^UncBJSEecCcNQyr$>PEi5+AeLU#SE?rMg4CK=1lrOs@Bi*$(98z@~q2NHlMiSUfpG;c1PxSR|bABk8)2EN`w8e$F9iF(eZjs zj4U^T{BFcM*VzJ74c8}!MxA1FoPssN z>NOFvB9BM>6EU5(C2%tv3YMw9jk<-2>1#|=z^0k5vZraZhe&fHjM-Zq8e@9#`AM|# zu%0I$`wD1y|0y|tJKDm<8mW3EL6ASvzR|Qkck%Y`_TaYD+IymA=^1=xU&Tkxz?@9+ zI-RlVV^7qbrc4>R+~ubL|65X5OdAOEoyy(&Uo~8E?P;H&(TNNnm7T(u`dOUZXG~|UNDW~ z0)2!${bIe_w%;F(VO~iEC%C6BL1AVK<|$B;jk)1NVaiWO$rmN(ax4bab`(4i9F985 zXr1%u=4t2wth{gW)KbPOPNC0# zq=?W#n=iM*8=uV_GiQ^2ad|5Ooz0w_;;Z%}xL_9=_iKu@DnmAHy^RWMMjxEs`g1`e z;;jiNvLX%y_|N8u=wErB!ZnLIeze2#S){0cE}snLj9i+MWc+ZIV_T zI^*=-qsdgHF}};F#ZG;-+ku<*#aw-fOAH=byY|E1J$1_aq-tn$=!|%ls{Gt==L?EY zI{(@u=Sg@S!@TS^8^1C5sfL`c2FF4rk!n0VqL2$^B*Idr`^?ocqxvS*+m>BE=+*TF z19}JSa{Y<@7~s>EXmx=ms8xH2`;|0w?uPad$#*T6@N0^F0kT%+O#pG zP!Orp$#72zhN}(=X+%Gv$05M7^A{Hwb$i8fl`OyOjlYgY?C8z+=WhjNqUZn8@}s~v z!LXCTdp_b{sPb+3#>z~)PO;~sUQj>Y_{xWP3)9|QGv`dmBduRl8VEc$knf%nB`JX0 z+Y_uoH%^%uHD7t2BD(<>c`vNAMen(ToW4eyrZD2+=KF>+XbQ`>id_NHZ*)78Wu(vb zCqGqug?*VBL3vZF`${0ES)E0J1k$H<>xRmC_WLH%fpKN;zohjPWP55oAf1YjCFSrPc|~n;gBzFT2ieEo>f(4MEs&afM@PF zUZ;JmD_1HVoPgx0Xtr+Gz5<(%OQx6qE{fOcp5VvQgKpV>H?-`ccZtI73(-`@Z1 zZLuJ5+8Y==YI=jl-i)X@VT!;eH)c9gkYZXbcnx*+_pSrkCGKCE7NT`Jp1S_2(BM`KfyFru|D_pTOSdp!;;=Vw;146C85<*Ly_MLLHfM| zBh66Xot*M+T5F0u8?~M!bB!lPp3ZsbL=MN?PWSRQk)@cLT$^e9LB0g~&wD%yk&;cp z=slhf!X=dD^HYm*Ol7fqqoh1gk8bTfdCjQcMkC0N@8tjfa;dsG z#dX)Op;T*C>G!{b87*pZk%Zzb*fzTdDQY;idtZ7Lfn23cyXiOt?!>e}1dza;RG7v7 zsylq=++;J3kQa{PHN*W(x$+f;T*c+p79B^SJ77}4q$6top-Y65(=E-~2^gWp_7r-H zN?gG?!em=uXHe$2oiJ#a8cATxcSheG%JN?z`+kqyqO1J~>C3RNCm2ScO;~Xj72_ol zoc3$60Ng?EuXWt&WoRm|M0Sc3c^_jOWO5pqxa`W?YGe}7LS*CsdqO{?$OgZuRep&2A&N8 zqe~8!5up}@HdII$wMXL@ogey3Jmsssv!%Y_1;4s0)@>LW=9z0JvP@p$6Y@a{ z7S}?cB<^Wq7EKx<+JJ>TOU8sF)B8MzYAe646{dHP8a0k-`vC+_zP?y5GIZmj>xtfSu9ORSFBM4A-w6LY z;ebf^WolI6rf~2wt@$j8k>`7z%7}?*MT*SSPor0%boc_lvy-ys~+7a3S&%%u0GN}?Z!SE_VZn^pJi_3yiHF36>`ivnF)Go@K{I6Nap+fZAetJzp zpnir~P3{yPI0nf|Clnxu394t{3sZwrmI?hlzTskYa7i+Ij8}McH0F9O@1Cj2_?ky! z+I(=35S;5|Fy>B)=b_E_dpCt(L?lD!{w)GEeakTIwsP z%Cn=kWs7tICnJ4}T=LZs3P0o>>YKue7A(Q7l21i?4e#u?*H0Bh7(~aWvlF1iil`tf z-2~_Fg>O7nw7db1N}$=VzB_V|0*QB|W@+N|4*{vH5I{|dQ3{T(qM^qdaCrLCX? z5Ryx~lqySO{U+)15)>&Xo8l__1x_O$OC&?}noQk-oUi`b!NP$^&ESn<0J^S;dF+NW zNOnn<5HNCVaP#BUI{JXE&usn@{bt5`X~vH0rVKv6wSzWD_HYykG31%|^#ct+zmh;Fp z`{3F9DH#D0H06FtE2o>kY-67RU>j8dZ5R)#`DDmSQDGPiy`%dOZC6C~`Ad?DIpg+v z6Y{3VM2*4oPHx!xG(|vv%R*B8hy{0T4MHF#f{uq7rwjGw#EZ%?*5jU^=#avCVvl=( zoKExkEt>cWUjtX6}lMweZCaHaAm>bk1xYsp}rB`aFac{Cdzl7cy%IQ z`>NgdRfc4p4yJn&sfjslwX*iTFF~w;=m=V0!Iug_AA-H|>NvbDAA*usC0;+-nY``B zpEqFhzox_Gh`GC97QzQck$}>Z#$V*_<$ESyjmxlpN}Z3zy}y~tjdCm9gDDfWFX@Nc z4)RuPFQ^27tygv2cylUT)8(dBYFS*L#?ee8sNPcUep55ooXC8()&C%3m*pzl;Zg59 z)%2;CmE^+O9&rIx_TX!^U5xKa^Ub=zT^d@`#~|h)kRr_*6huIX%CDL;W?ue=(3bKT z$YXD0>icZhvi8<)#m*R)pSSG1HlK&%3oA$9FOS-ZGeNobWp8c9#~5q-X(tbIG5wiu zZ4831w=yF)Som%G9KPu(%ATLBJ6+`78J_2!*`y{Htm>GFNR$rgme*#=;_Z4i&u_Fy z-!D=da(S~3KCa>nQn$wufBxo8oqBHFykuqVonBR($g*;}C9yPPW{%5Mp!M;x_wct3 z?^fILC&dE+Qmi0BUYp;Gr4J@?p8RZD1$CyNo=#2TP&lp~vxV|aWw^Qi@wj#3&?Dau zuNii}hjNTcjbk2uPDY#Lr;isLx~RXIeg%v~RsUrg`@Z0hdM`X3f11i^;nOu!HrrpJ zypUVJm%dE;-h8BPA)30?Hg6O0lDwP|1zdD{qrW@c7E|s%jO^J_*<^>p7MwUz{~J5h z+SZ?e7TTZMMxTr5C*ISD8Dn#1$Zq{)B{8;GD!Ms$8L4yNl$4XSm@3ibpwWhZ(_{t2-%%Mrti{Ew&mKl70;jLLsmTgFD z{MCG8Q?*vKmMOc4IE5o`&i?W_lX^0&ziHN_a*ldW^`#)Fzyw7O3uTxfg^9b8bDvw@ zesPztFwD3nY3az>6{UZdHPu~l8o$dSu`l51@9BS0)bN5{v`0kFdW#+Bs%%~V?*U7z zNu3wKH50$|iib=5z`zsuQ)Hd;gCagZ~bS$OP}97`@h;SWzq z<-F&1vz!~>=z6KmH_mQIVp?w2Eja3bPf+~%Qwrxbw3X%DG1~e1twNatUxjS%D^;og3=VO1fx=wtT z$Cc|wmumCjI`LF){)IPP>OAMQEIy)^hn&r36YtCWdcOI_?B&7F5rmID*d*Ro1BU$5 zjh&?X$-TPQ)uDq-w)%Bk9xNm6RNm)4SpxpmTr}@FKdW9*Yf-t&T}`bv7O^a5Xy~=M zPMm+~rtH~|Fl=A#o^J-b-?}~7^yCC_jY$+^`5s(Uo&S6~7vUxRs?q+ocblR0eG92= z^s+rmQ|S#t%VcHb2}an_6=H_n*knE5dJQDeE?dQ7<>Cl;86zR*uI)O{!_3k2V-V3K z7Jf>Q{pTrvoU7MQd8uwCX(3*0H}ejv4`(2|-*C=(+*EGILbSdR{K7P)6b?(!Ts#jVgyVh5R`J8x36d8F(^<#NdWc5`o-Tk;FhvoYj$)G z_cXMY)e1)M89&%3>L7dSHkYUKwS?w^T8MBt~ZhTu_rMh|?39DA1M>0b)R!%@&eb!!I98eX81o>`i$tk{i22F0SynM5JX-8p#)F6TRwZe8u( z-M2;={$PHzy7|ni|A%Wgga#E9`v*1QDVrl!B~#=K;Yb}>BZxg<+&X8+oZSf+Px9tAIYO3-X{z0)R=8N7DEb8B=w+73SY z-8_G6{0=^vf8X7S>r8~jz7wrO9#hvsS@{PQb>#6|M`;T3>wW(U$F= z8LaV=-60e*41>OnLfdQfH-mqrD(!h_RZU!^9=;d3XtqXxEFO=W@wHmyueRTH71`PE zE%gpEx;WabZzeSI)U$XK%6m@*aS}Y1p;@u-Xoaa8ELZ$3@SxLEv(j|; z-7mhgw!!9UZKY}cd%{KMXHVNe*?{flb$Shi5yzkLOxWL?`Y+0HGWKIjb(#34=`>mm zT)w@pa2`9hY|uGsUY)gWTFURPU9@j24f@ow*^G-m;?#3dL7uUnP^u@vx6Go^8td}S zu)>w)#IjH4%xx_>vgwklhfR0fmRtI4ZANAJ%~3aXvN8IIC;M#Eyo2-nE_`Ns!_O~^ z2OHaFj~X{m_~KU~iUPt{W6dLZljWa>*-d@-b=Xj}*AZcd@7a$-+oo7y zV|8YksdKQlHLKUOHaUFuVBa>Fx_!6lHqAA1HF&{fn{kx5ue-{(%sgHH!?m5c!a3s1 z^1IFj#V6SjofG=)n~bI{<6md|pNIF;w%xYo@OVZpBF<&Djqnza@LFy>YYx9rU%B1Z zy}r6_eBE$1)$j57PWDl8R-d??EwnvOcS~%U{~}%5BJI<>*(k;KtW!$uz%GxU6G>#> zt*uL@mP5;Mx<}0rC^jHnK7No^gMIqZ6J`Hfx#x$ccY5x4n%`5V=U_EzvZm+IrW*>T z=cuL|%cke(rkiRc!4SM(usBGt&|S7TNZQw3vp7mA)!qF2-1+<5|NA_Aerlgs97UGu zo?9HGSm<3*I{dm|dZ>5)g;V+X{A7ms=J+eV67rj4)H&;l=Ao=pi1n*0g<^Rxti=Y9TfzD0%mWO4oHzu*5{;RgQx{M_}})_Euyzd2+v$H~nv zrY<+AW1q}YLmm@(f7#4DuJ!1)yi|!79~h2Nu7G}6UL(Ykq6RlmE}vpEyfF#WRj!7M z-CHLi)Yvk>+PQq+O)`;c#{_|X*wFss%~XfLstIiM!`O>I#SQN{GjdUWU|DORhml&j zq}#T1!QTaUZ+(4_EB;H82(@sbhL%EL?G4vv0&L9T$%{%lE}ba0hU-WSu>!g)Mnr`u zK#(-aE04PVh%xG74D;_dj6{#K*2aEC@_8fCemrO8D0saI{Mr|XKB7Xa@4E#`2Sw|Z z2Mxp(3cgzyfyj!fIG2O2Q}cy+k9}wUUEir{EA=@`A5IUuGiSqBtW&+GTX-ep3i~9T zco7P?eoJECsEjKRWuN0n>MP$3SfFUfkkw5ci-(NI4y?<**AHgPKY89>Q@rv5 zab8oRc~jcq%k*wV#&Z4%6W*A$O&Np4j~2q+9E^iQiB@Z|7U9x_NYe((kv)t9FDq@K z*hWLysc2JY%W+oBgGj6Q(iBVe#$nPwTE1EGhqz3uGtyxk&GxEMt(Cv8suF8e8JtQm zb+%eQ#k^>@djFAPslhl*4t&`EIbDkAyo-i~N`S z&AVaWHU9Mk3I6T-ly@ItqN0!@Wfxz&zc90Z643IJw&`IVbdip*Y1KdDcTIE?Q-&&dg+UvHuH{I|<^=tSPv1W!>#$Bu@7_`ex3kspX;a-Xcm;ME>54Gno2h z;(nS2>z6WLVoLk_M;#{G*u{C5x4L-^V~os5_=8cCPAM|ceooo~m=?~KwBm?!uEvVJ zQn6(mzvU8M!`333^xN|e8~1DTmXn6X^KvFoSsb+1&=}InsuR5BmKE6S5La|fH5tt* z`UppI4o6~zf-=t1+S+{_`hrxi>-|Q-W!wJ)#y~m09%?hW?}z6yVXFovuU$Bu9ui6z z|CDU!v*~uXnJ>TG&a&5m&9c{Fx;q?cemlFFB-#Jm7{P2ET796sc+jEOt<^flWpo&q zuLd5MUGATc@~P=z)6qV)p{ce@lP}D}!Q0iBFX`s??I(6~<7a>Pu)2AFcuBJVp3IkD zFZ#?&tqG2uIbeUh%F`R!G@7Ij=_YgiH}8I#WfR1?Asv(rZCspI@e7ZmM^5!# zC%fd_YOQd+{(ZXJd_Qi;I^x{iFn*UIO_RI3O}f2Y8c#nrlMSTzzf8i5>Zksj;1=A( z1ygN$x`7L`ivAlgmYE{K4djIjR-ZqQk(Ua{Z^LMQBHxC&3`M^MV>ya`3#PJ^ z&(CJN-QK15>(wq@&c^7cy55}84A%LkOy;w$H)Sllb-p1}xvujK4a9uMG0X>f-H$_U znBPt&H@{u@r=w$J^S2E#OOSBlM`oZ^nb!nrCTwiOX;UmXr zmn7KlX8Oo6(k0c}ID(O5o=Yk>&}^4fYpd~ZrQt4#^J>xh?RvG`rX#RR%}qDhH=S*? zX)@5#ShGgnnZ}xH2F^BmM6ZK+_TahdccJq2c)0Cc>rJM&mUbKWO1HLmL~pgpJlE3h zalID?vRxoL<6t~=ceeQ^^IcoRjeD`%8$6~r+hodXYxu}s4HHREbh^oiNbg+pjV8U8 zhMV_hw>Ef8Z?@5-*V6Ejy&49RUMM^bWjw5RzWpZCUTe#Zd$|cM9@X1zGV`^zd~9!r ziQFeV5otu+ceedTb6;D_&3n7sTRf__+i31TeUz=*K@e;}V)^3Sp6&YWxEqnnXqAYE31fav5pE-ok3}Z6n^hVJm`@8uk7c6I*54 z>uwzBR_mP`_qv-%tjAnd16yU->uyZ8YD449d$aOiV`(x&x#+2N zhS5&3T_(J0<@Ol#RvE?{#dewX+=gX?4#!9s#TVVqn=#?d9LM=S>MhQud}C|!sNQBX zcy=7;9;vr@bZ_&3(TxtxH6--Wt>q(ooAaPa^b|CSFCH|RFL&u?nJgH4l`IyoR@ooF z?T&)sn$eQ;2b>wuL~cxHwVehxd=oESOuV5Lm*(T=R=iz(c??1jOGciK0DEMa57V2Q zj3=@O9Tque`Y=!bDI%Ji$?NI+!+XHI51V9`efRNwFt-b;1);9956a~puCNc9w}oG0 zXPnzOdX4>Yc2n6^cF4I6C)d~^=hM)yvPaG)r&`}5?a6SWE{J5h;MG{Vps;dp`AySS z1TBC0Yil01-7h~ahWsO0?DHEIH0&musehObH1(^tuS2lNoaR^J4ChWHbk3ieI?~(n zM2EqiIeg6Q+vJ&7D4h~%SaaQNy6ZG#COdDDxxd@VPt*Lb^8aJfoqZa#E&iKymnp>4 z0Tz+PE+S^%i!ib@-kTAGh(>xdEwP@l-c@VRW~?{X9(@_@owbHh#(HOjc*tmP ztv#?Yid!Q_D8_X!)lkC-S}zeZ7}4F7C;!GZJWpwy>^5m~|2|oMky;>Sta#xem~nO~ ze6ou^@0Z89+Rxd<;vpl$WVyTjuVTkcqG_I$@yePWq2BX@={GF2@z?zhkh{d9mq0N6 zx%QWU*d^n92^t+mKTkb8JoUes_0*;MfO?lEJ?1Wf@&4X{za8FzpG|rPbaoK63kG{Z z4*Oj4b)58WvPjc)y189UcK#-R^KaiS*iH8T9VbtpE#J*U)=$Cg&&_JNithG@uP?KE z{@|PNLw3a2`u>zF6bW1(zQHxOz9Wqu$>Y*#HSeE+e&Fj^s9(r>O0@cTDk3ywN(X+Dh7T388cYXeN ztdVP!=I$7;LTT=ZtJWvoeR<95q`5E0p-sAP+B9VnMEHN5cvJ3FGD042F#D&*TJC2A zC^SoeG~V?nbVlR-=5i98rNB@~fx&UlM~MRc0|ol|zl5eypw2Gi=rYMJGfo_I-kVt( zAiogRkQT|RN!5>i@waJn!gXCVGPQVZl3EPgKO>NrVLK?-qgQ9i^|g>(^Zc60&t-Cr z59At84;v1RBG-ZYn4^#T?qkCgZ{W_bR3d%Rc8@}boIeWsdZbdRpRP$Vl{yO2dBMJh zgkG$#ZIx2BP8m*8C$rT$y(?GRJk$Xw)=3=dHLf>~o7TABKBT1@rH@4LD|54d&i;Op z-seRwvUen$9lsYoHausF0hbr*H^4`J0|Syvy)DCy=~I@p^meiEr@Mz_IZH>^@OpJ% z!Q1QS{yg<2>trcPgFi%c$9CVfLciB>-vf^G&P^Tx9aMJ?j)xDbEx#HP2&X7He*9cpyB*%^_Sl_?d5Mc zI{8ZO)VOgiY@}HOxx-#@BS(3+Gvw3wKCJUR;v80Q zyy>xp+@zVK@%9S>;{$IHJ~E?!?hg65R^UoRVed!n3tDoMlR=e%b z^F{hD+5K61WUn*E`I79?(gWs)5c=a^O~UE12R<(6pXce_^Mfj1lx8pEW}bIn_I?Jh z7W3@CCfmiUbhFE@%f$G(Rqv-Pc=glm^6%-r@UEImmy2qA7fP2u{lXtpHxhicR8hO| zWuFVae5Q8zbCa{rLuEbs-7m9YNP!g!v-DK6uT7{febi&ed+%1P&YGL=QlxE+H{ZQD zS?k>nv{$tGZhNcI)!G%WhU$tB`3?Oo*`{{|2{=4>?pNhw`gmE(5f}%|?afX6+w$jR zzSwWlQ@YV0XYW4UD}Ot`pJz_*Lng5LZf#B0Y+?i(!B()WE07J%`D0hmlY4UW1X*wP``a+w%QpgqR&n<&Pj zBeXJ+39U>NLMw;3N-3WCdY#Wts`>we#ap~=_#Xyp_MA$$FS439H;e2kFDCw!DzLxi zyV^gn=?DJw2Y33x%l>e8XW9)5oRk$eoX@szHk;MvU6N7r@eG^Ogu6O*CWhH=Zaz$h zpHFJIv04nxqC2Yu$i{hR!syo+Z>39U%ZU4Qd48XnrsobMSMBspD~}B0eRbZIkVI^_ zEdhg!?6w-|V^sIil{<#H$uOHW=23N-HM{aTVeebQ^+PSwwB4C-Mb4I66RfvcaceCn z#M*I>t>?wsahvU@$69iqt!K&Fai4^fWi7eU_H$-Oc%#HqXC?1!psWS)omG=EMt3jI zv&-BuzW>$xvRTiVdko7y?#yq!58r_Mc6nC z{?^Z$TI=uryw|n=_Rm^i>u*^p^iY`Yr~HD z7{6V8d7sW!o4Z%+=C=vIY==MpI3MuGFaETjfBAAx``O?K581fv({F3cMc;;&#w3$r z8YA|huKSexJiXuVl240ty3FK!y3YLjbXPnl>hf=vxXDAkS`Dok=-m>xW}uhr$@35N zY@UCAn5Xgd`vdiV{PZF)ce2}my3L35=gimn$@cqlcKM=(1)BZCH-lyv{$@7(Vo1f?D;x3;h99!7F(&DDeJA+$WT_!QUx#cwulbS0E z+!)cm4k>h(Znyu_CS4{hc%6Pu_KQ3elC^O^+Z`fe@!>}Po@~EnEqnLyE}M=U(K0dz zT)feRIz!d>A>VHAZqjw1PxqJRg7@4%Zqmw!$YXu?$!@jDy3n8OlG#`H!^+sUJ%v|J zJDB|A@kBi~wj_rQ8^1gz*q|lewaM7+_U7B4$$p#tTd%#WyW!F8HjgnT`R1i!T?c1+ zfa-sjfbKiWahAOn1f;cCv}^Fp?!HSm`_Rb8or3O{^r#4GTObb`5I;=4d|#recS7Bv zIf8rXyn)n|I}_{%H>q*W`_7GOW%HhJqnhd8Ec4i1{+gznoIB>JN$vbI*=k|HPlmRi z&U=R5L1(rb=zhG{$u80HN-=(yAx)FJyS)0uK;uK(-3;n;+V6rqOh)ol$oFIRbLl$x z$MKZ9-rXS2>_TM*8z-ih*tvf8wtKEPI7}qrqW5^Y_m&#Ci_+uP>0T+~{TcJK)inX1 z@adD4HuF{_X5hx(O!q1HMQ-iGxg%0Jd%s`i^}5Ot*<)+|jRhBPPji&`)F$p-x=qDE zbZ=d9di_r6k@4+Me?P@$%PZyVxKw^5+x#!gXx3#~(YPWM3kIMW9jDUdi?&cqZCupM zXKFK`h0R9elwsU2Ymk~q(`^I#lB&wXH&tRS$bdIMb{)uo4(@1bF4*w4DF}B3caZ

-n8n% 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

Ncb{o<4&4^KYKt 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

FL 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

  • hAPM4Q**1~i4T2U2O*d)! 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 z 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 z zjtOxxR~v(V5%Vij`P4@s81%9;_i?99b2eyLdAP5Ds768T$`(Iiw+(=IeVap}{X?8h zQv^eY_LEs6Q@vJ5KPS#-Mqlyr$_0R&;sFKRd6%FAyGktqPwK4dgipb>dDTGUpiP@x z_lC=NB{QD+n4BKoH0bu|v)YgdQ>Jj47Xg+Dgy)FS8Gn-=ea33zGb~iCi9MqDgkIu1 zI?%5*kV|T{EOB>+$a8d^e4=6!(^TNKUXl^l=-h1sU$a``&x366#{Yf*@W!s=PkR>w ztPytj*mv8Ee%H8{W2aQnMk@OWyg*>s)~-pZxhW>v9Ft@!HoM7S@wuvYz$WBNA~$Ln zJ@>2_eIgIpkL9#cBBoA1R?>>No8({95RkaIRepUEn=^nNx-;Kl@wZ zZKb9HGpm_1rTWuSsQ#A5R7vH&3kM022A9QN6OIkzM12dXM2^fey$8MoAypEdbu6Cl zT#kgn^{>;(siO^bOs^Y8GWsn0-?O~708uG-cWQGSs<*BzyWOZjvnIS|JQ3|H z)y@&_Y`{WLDHJovl~C5}GRuI57u<#TrcV*+LwA=X<{{0al4MkIwrU-VStKsFQOuOY z%ke&~47}!3sQqWi59@Tf)JHZ$2K}r*7mNQ~#b?fcIg}^${}Wm<{n8v7qh|DMok)I;dhwAv1r*)PI$%IC!5Ee-4&sm0V$d6y;lU-0$eN5o0Xpt2K7mfVM`fW?xT zXL2-%1qw4VGG9eZCIR~lcKj@J;m#UU{pFUqQ#rNjtzkgZ`VxLgUv%joW%}T%&Txzw*(eu+^|H}uVQDc&J6!)`-t#hNhMg4 zbSFp5?}f*<=kwk9i={w!^*{HxHCCve8P+|QE`T;ydau1M+AMtVRR5NxV@Kv!l0l1`iUn#^PTNNRHc8%BdaYL zF6GIlFMiOIW*o05wjKFBF?w^?q$gD*9AGrNIgek}*>IGI=?3=2@)+*G0o?ra8&C3! zTR4;r5@1i}8aDV}`kJXyhlOrs6(_D~{8 zG-c;Y{pVYU&KFdr&QM&5FeIz+T%|+}nUQd>%!oNr2JLd&5*g!u!EmS*SV5kSDl)Pj zc3bXsdv^T39rNIF)m-z~_y4JUr*F2NjLEIEao{!oi@F>+Cb!|SS(a`5!RhNIw~cy} zi^Xx=A;Rjcl0(UCKlLtXWe@Ffr?4XDMd@>DW|ET{J08;<%)P)#^C7?Gs6I45ge;+8 zG1^`T1hQ3()piP6u)sFt#kAEn`Ol_Hg~*`nT0Dxu*EKmn&#f#d5Ify6Y61iFxKM9w zsss%>td~b}S=twYI0TCvnT+F{RS9TozN=Sc16~9uY9UNH<6Gbdfn-O`A5IZQkJV;N zfFFMItiUKwsgpL!ONCegj_YsMsO+ ze*jv13@p-{Z4cZ+uv>k~@gYtrVec^E$%zvT6n|lVA|gBvSUKC#3}_PFH@w-y>xz59 z(~<+GvV_Bs7oP~jO#I$FjhIyfNTT?T=#XsZR2VPPu)~L%m8Y4W=f?1}WNgPn!L2u9 zKV=Z!TKB3-V3oNY{~1$oMT)GMfxabnW)LCF!%q}F7LZ1Sovp@b*0Z32&o~;yBK0Cj zkzwUkkYY~6O^%RAP~!C4dBRTnYp(}uCx`8Y@kw#IYwtht1vf>x$n=o!AEXIx7#lzI znWsZBJKp)S0J}u&kc=em^l+?GjCcM_RQQs$7V<-aGt6WHPf&!fIF#;HQ={pQ1-lIA zB)TQPJ@X>Kr}%ehw%z3K9$#>_sCbN)9|!o#gk1|`1qMv`qv(%he_nW}2jG&z_eLbK>%rb-b}#EJ+O z)Xk%SJ=}8)RyyQKT{qxb5eNj;(CYb_t00&6Xn|wLWpcMz@MB6_;iEk+ztIBc*YlXL zeC`@-`RL#YqNMghc4v}tJaQ!%yj?C=`Tj~!DU4)RQ>;g0>!d56y((P)q%hi$dzJXm zU2|z6c$MutMz#2yU2$z8cm=)|Cbi$?q_nB}FD3d6a$U!{Db6-1X3sJ%pYZH z8-Unu2#`(8-zmu@A3KMf?s~d^aw$oqnA?)Dv}SRVq^H0^K&HTx*kyR;)kr57q)!aD z+S7H-teR^oL1cl@#|jVIT&bD2>8B)<{??d^@0dQZJvbgYG84DQfjA|R5^PDRU@(DT z%~qyTH?h-A2_=12+cv){5*C^l%h}_I9EkxSUyDees^xE&;qXSnHO#=i%(!zIa2Gg8 z*)F_gOMIa_vHwDjY$Xu{iFsA>wg#w`sMZW`@PT>nB`zE0Be0z5iI$}4kZ z&t?s@g+2w6bH97?(C|~&K!14zsCHn`4NkDy2kx3~TVLm8#4|YsgO;~C4%n@ldns-4 zl)m2=O$d*cn|m!34tGsQzaB8aChq^KYVJ7$%&41tEf1NRdm-J5HuPI=TV}7td_fT6 zIEfVydV47w=m;HRl8Zu;kv%K$RS!#Wxoa*<93cW)Hb6;~Typ$Dhrb}IWX*-cXF@Rwr&h>WoX#5H6Sr!1ELl)^!5W?Cf2{8j z2ht}+GI&Q;t@OCZ)qS%vBL;%m?;XsDg~#Fj6nD!*Bba{44Gs|pO_r#2&fMsk0WvtP ze3~5-#}oLp3%(CcNEgBnAZ=xgum068g2)hSDck3hVq@_pQ-#!>615Wj0S%r%EuA3L z!ujUMn#rz_wKoyE?LKO*Df0NG2gbHT_fe-~h@K&B2x3ScV28S@UBW-VG7|c1mDTq#ijZGpgu+|*dJ^Qh z8JMH_7;t$$z3{3w)Nm7x6lVy2_Pmn3sajCV+ADY$M6(2WB37W(3Z8!mi294zH**#F zAd6FB1;WQ-S0KSlA_j*J=n%gP5-~ve734sbZ$e&(7|F;&%Y~z6p=5~9e}I&h&U?Ol zwNSN~bxzbz+q#3p^vV*~@(qzL$`ac>w7_w9KT91Lz1D?;N*#WAG$1L)atm!47W`3H zbbMqgdd#@hQY7n@Kp!47Q&MI)(?*X)ZHt#m7M_pzPWv3ZdJ6m3+D-C5kq!%g1faL? zav8S-w`S63>MmO(weiOP4xq&y0zgnvSw z9yj97@SY4B?s`Jjx52gR1+CbY%`M>@T9%T{HGOEA<%V(&sVH+xns0B6%x2=itH;xP z(;F|sr&-s-QxfNSEEMtTwi~xIspVZ*=)KKI)TFctR(z=yb}E!U2OP_8<2esMi{JQv z$ASRu?veRzg7r17XP#qC;A|?k7u)Ld|FLwA;gK_J!>+crZQFLYwzsxzV{6;CvGvxr z-KlMNYkhM+-}@)YB$FJOOeV=(I8W_h$a+R;YlQW`^?t3;FmzEU?ahf-JP@^_!INd= z`QEaev1<1Gl!~-^yZ%V3k#mKpdpzdtYoEUtXi>VNxYlJtaMl8QBC5IJcpi(MV2987H=9&=)bTjNt$ z`0o8YPW6Sg2+H^xd>pm{50Y4+I`@lG8w=kv%-nJa$MkWvHlDpTR*aiEuGYlZC*E(f zddA;t5L42g_jnfPkNsW}ilsk53@GnRP=$2LujXF=p$Ziqy+B0f&$}1c^EBV{DK`+( zulW%u7P2?%LTU9FwCPS@QB3ox@>GU4GC;GUU@q1WeyGN7jGjDOaAZiz(QZO{WmQ@HzlL@~h_~;&e7Yj}Z8v6Hy3edBX~}EP0<= zo}dzWBPQu*pAqbAUt=b*sDGE3SlH|oRFWk(QcK8aMZ560t``2=UimUolccm@akqm? zXA3wbv_9La6$7n~lU?`3hnvK+(^BC32a;1ZN%Wd?`>4=PHPHfQI&ZmkxfslRwv9e)iQv8%Dnp`} z{NmU8ideU&f!M?cUnvH2M>63Cw)VUKmnP=+~lYz0`tlO+KJW9B$tDA zPJcX^Qqny(0kGy;)7txrPa)u|`D*--Rqs&sn102}>+?TXR{-B)haa3um2$P;MWOb? z551pfD{!_sXJA?&ku z$mZ&B!Q=(AK~XKqCL{$YRUPFb&C?l>X1)2cFmoSwpYBtnNm%`R+$S|gd-5-%uu zzA$(E6}I0%SGVW=1CoiG;M-eu4D5`B@fbi?c^YuFg6XR0Y?doV)+$ao@m}Mvv~gO3 z!RR8t=j9udP11(uP*`|K!Z&%o|Jw?eOrn)!o2+^N18fZ~*}^O63~KDomoLhAZLN{L zADY#r_ zkt{=&Wm*(@&AeAs8P+SkeL`Bm7aO<$TY(fxJ7B@wFTFSzo~sMFn4DS|V6bIQ8EnOx zG26{PZTQv`9zto*7KC5{ih@wkM@h(&>)LYzSGui~>pJD-3=H_7od~Sq9WrwSz#ytU zWR8s$;#AqsF1GMF{tp~rK`Fab8cUD7K0{OR;bbBLcNZ@Hyw(@)LC*y3gd7mm7I!!x zZLZ(m)oxmdLi0|XX7X)Sf;SWbkUY$iHZ)8R=F;+;4$sbT_*2vLBP%t#t67Am4v5L* zHDZ{IGhXU}gb<4~6enkM{jVz3GG~!NB8b-#34cvo{vI3&ut+~4nZyD$?#;mv74nVs zC1~%6GCjx$w>9SEM2~(%?CNXzP2!OIVlZaoi!OOa3PNc zZNtR;HBl(PwSicZtQfobsqgWZwh5M0@;yGSMLpc$a}7@-a`AAJC^GNUw$Zu2#(aUd zVPYYN6iiuiLxIvtE48p^>exdc#8M2ZnEu5b=?rqSvSZwoOV$5f zVq4g#;LrirtVT-ws;W>4JtO>?h=){cXDKrkekxdaQ|Ak;~8%t4!(H$bvx~?+V9xqeR6*V#%3Mf#oO7jT_8HO5gBrfGsNVy zJ*N?QCLbVSbf1crsiBV^YQ5eEMp|}}{Mfh#Za#|y!EcO~k2xxmrDP;Q@O@z^L4vuo z$xMo8Z}XsGND6_bKxEfatYhLbP+K^KqX9Y8^~1-FwX&8#FEiGT?sDrb^4Ldw;s*JPG#S=tI7 zoTpiQpm<;6s!kE}_k5*`bhNeMArpM1i?hwFt(#A~Ui(MgnTF-EHI!wj%br?W@kndz z<{rvO9l`@Dx#c}{2qtWI;is)2#xe|#KC2g`$Oav z$3JLXpi7Cu`^eb5MriJV6=zxSG4m_8_D zX#N(5?H5>+ep7Nrw$2`Xl6l9YW+eIha#uPbwQOeNu|hQ&#Aqy3DfCe9f9 z9{ziWw3Iu0?LsT83oUov3LUnmqU{3ubbW{)X(4al>~-nX1lOe2O^eX zlP<~Rr@VmnLjkz3D&FpqvUX|Jg{^Uw$!MqDT<7TL1fRE-smZSK#h|TLK(uvUs=S6N zmzL^I1ISXITvnFV@^}c%YLZ?BrMuYirrFDfU_J(gMQODq~^wbq_G8PlW9KJTO84fu6(Skr17>u+*J|NM>3Vto(>`2Cq3Nv2(7dx z#(^*Dm<7=nbEy`8wp78NHC-i2mo6y41 zbIVMwpf|_+aYl`RPj|jvX~EN`G40uVB0Yy~Y!PrvG|z0FzLM|?{+f^8nft{)V!;-} zqE2*;h5d0-?nyN>YzPQth5hX8_zyAY^3X#wtXJ@?>p0wK3N4xa4-Juyc_yk9<0N^I z;bvGRCH(?IkWAV;RR?_TmI(S6NlTgwRTF}pGJPFha(7}N@;R!deFAWE5k>m2AGGx% zEYsU)6cl}$9k|Kgm~YhNK4M&zx)u|tJn(u*EtQS+q+*>+rvSjBmZ1Flj;~WHX7pt` zP$9nNFE^|$1|*a-&sP4IDe%(faR5-z3)P?)&r@xe{g8$fbtJ)^*EaEz>dH#>BIaw# zdluzC1$MT@uSEqlxVP2`7y}*A@zM{WezW2uW{Hz(M{_L_T6(oMG?#^~Yvsr?DU`d~ z@t+Iqo=w>$aVxRZJ7Y`dk2P|yeS2nTwHL^>511xswe^T85~g`)yp@()#Pb=R1TIC9 ztIxS*4A97CUDpqBGARxl`|OC<8#1_uo)N1)7bE!L9(cxF433pSsT3UNk6TsIxPbGX zyyRLC*lNMszyvH&TC|B_9a*zM5JJ&-l9h=}u7~8L2@+G>fEz14R>?HXmidF*n%Zp?vd0I`0aLoZF-X!Egg0I$5|684K$iX+kCB=WxLUdnl>u!DAwr&#P$M z_dg|{K}(69`(LpOUyiva{H@P1oIC=K{(C6oIwy$M;lK}9vZ^UOu=6P-8Y$;p>oX;) z(eEg;d-~(3vs43M{)x*GHpv@oD6h>W-QSD2pp(oAJECWcr{0717-f~SkJ!@WETL#4 zHQ@rxi_T@4I=si3DpnhNsU|Jp?f<$Gl85n5j=^#mZ-ublAS2;g65j}zAZv#+AAUhx zvT}1tPMr=)IVEgP+2V~0h_N71JG%x-VBwAiIqA`=q( z4s$P_&H&HU^w*%#3m}WvlI%sOQq5^{R3 zc8XVo48y8XGpF+Bm0D7!b_-#GZR^N^5uJ1fRc79C=Lk#ghUKvtP!(Al_I4Z>dhU4K93B3V_vd328YlSkVl5bJAe`0zEm>vZgDB}`& zqzKe|AAS)ADcu9g)fzo z<~Nkp^{w7u}g|-jAA|O?j*l4$}ffa!sCQ-$rwrfhsC0 zSp4vjix5nb9uhmO>?yKp>+>;#C=iGy9Oi$u5lCQ;M;74h==-V+L^kSx{qS!lQ}Xi} z!l49Y!FmcQ{~EUt$LoT%v1mk3^14D|)AnrDmAe*cUS4G`-K)%pm2@slF#jtL;MNVD-TRgz!V?&hBKH+)8IL_E5yvHqq!DyFUxE6y(C^B=jN#hhM8~KFOWjytXUh8XZJJiDeN31gryW1KAKPJ!<%E$Z8XZ+13BHm+#BMYu`C$>R#X`>8vDrE}0 zwlqBCqF^G?aNf#FSD{A|SL#&O=VIxHBnMDSqnKp|?@_1AjzKxRb0wDL;^SC5Qhb-n zrKPU;7j$nm8Tsk=SH(iH;pRtW3??rfBWx=j`p+>gnz&*$SR9;$RLY22V#xF`_ar?Q zOJ&fI-VD)7Ww53?04 z+hkkDaRZ1=f670-+Ucr1V#xvS46&PWu@zJ&JkP~W6F|Ade4vCv5zibdQ>l$NC;MrY zc}sdr)ruWo1c#}Kh=sPRD0(@`_-%|qB;^-u&LZYnC%{TmwITt+;)h}UsRwr z7p6}QB*Nkh-`_pUm}e)Crn%3f3iNyz&Z9`Usl@a;?|e0T*X7G+7D_lu?%Th+uKhHx zT9LHX&+LbDVmof!ecq-M(u0{fX(jZeO^-4UuKW43#mp#lwDiqVHhTP%-zh+%71Ulo-_FIMQ z3(`OcvZ~o}nBu}{gwN*;%toStX9n*-&D=H5yFT$lA+SV>ewqxRG!W9w0cvKpTcs07fvYe{hKt?^_ISU>C5aBQ-!6un z`_Q<45#D-l`?2Mih^KgYN@WIV3+N5TN z7Ey8iT0CWJt`uRp6KH8j=MEq06ZsH(RO?r|-_lhe3NECTfmz!NBLxaKd?^pm+}gjd zyMnlU2n45G^$Gkt7QKG3n(tmKQO3TyS$WqZ3YdG>$9bQv`(SMB9uvbz)P?S`>1#hL z&EP3o-hG6nkNmgUb5AQ^&YF)zHZV55^+su?7#d!N#)L?>y^Dpn%*PVFGYuhb!NU!n ze%g;bK1G?O?kJG!NE+3k*yxF1LhG;^xmpN)J|^poaN-rs$RnrLlRi=z_AKjHD1(Jh zRlmd@KjFlSDIe|M+za_xi7i*8qs_Zer8%x8gcIPUrLx%eQW!dhXtCI^Z@eI5;P{_#41PlfD#)}@%?D00c1@b8IAvWw=O;?ZQU=3Ro7tP77*yg>C^>^hk;Vp|q0~p}x!L_@*%q@EC0Aog^XTsBga!a6X zza|n$d1R{C<}xY~1BY3|(XH;35e)Bo*nF~7$bY%B6|oFIYdzFv#hOTG#xtX6%&qTN*01cPeT$3k1|Ok*<4B0;$L)x2 z**`!kKyZpw+*PRlA*6oAL*1Dkuix9p-K3Pg`wQ~eJJP7YJ*xKi|DRsEg)qGY;4$^LQ?yPfO6iQCAxzY@jyjoz-1s4%oP#C>hWUcfR&~i9-DEbOPR~ zzWUZi;;x2xPx^ZUDrRsbaa3*<0|K{-l87N0?oD96r7kcj57;iZ3l8X3C^fZ%b@u}2@_1a}jtRn~2u3GFPNCpHG z+=o0byn-i<>>8B^eV%c!W5Myt6Tog#9@q+$<0qvV63s};Q%s5-$5MgjBN>C|GCU^w z|9Ok#>bUXU8pm+w|A2D36-dk#?3`;(NH@+keEgnJ;}uq)i$7GEi9;CUC)lMipE{+B zk?U{n<`mD+oBVV$V_Qdnd;{DloI(Y0rJ6rG!3gn!Bg)iP8TAn{eWZVXxaNJ_-2>rT z=DC2k6b2xg;+^QEUT;BxHTP;(@EqCD9DX}Vc*|^6bCZ zJee;_qccq|;Qiz7f=Xtcc)mJJ0n39Rbi9P4!1X%lFA-}NA|etZ7V)s#u8s!#6TwR> zVUSGW6!#WknOXKaO8Z2BIU5*}X$TF9b$uBH$8Rw<(aJLS#A}bdHg_E@@6nzkq=O`t zckNZTmK-`+%ZHo0zldKNk?FWn>u+1Nhdc1#xB!dYkj$!?e)F>W) z6uwhD(fj{s_IqrISH9pFH(bT6O;@)VIKGs=DINxd~-u@#6r!iW7Lo$pWBYz}fHUbH*wch}&iXS(|>l zmfh&`RC3~T%~=SrViMOOMT~m~50?(9C6)$i0&<6>kMKD#6<02qcu)~S=W-W6T`nPi1?18|&Dp!cbo56Hx8sU# z_4Q2V2o$BVg4hI!IPq4bBDrqu_o;)8f)5Rhwf;ydaWC&D_R6QvD3z;k(1R->fZU># z+Hl5KOO&zy4Qt%qljfDl<)!@x@414bOuWT3ezQY*s7521b29X+g>bAd%)2yCh(Z`X z6#PUW%IOlyC}b<6%%Ya+3I8AILuk|{ygCFL{h6i$)zfutiONs{tR-Z)m3T`|&Zr)wLkj#H`*f*&eFBEk5i=F$9t}2~f zK(g(JLzTxKCvOf`MtsnZC%muN@|{ZuC+Y#gC+a>hFvJ^M7j*T?K+|G0Sqk3LeJ zhN5Kn{5!#QaYB68s<)-Wy3s0Gq!0BupVq|#wqfy*Z!pA=m9_uhW%2Bf>o1s;Wfi(LS?9mH&7baUtO{_SB#uFA6y@y4{`F2JncbBF9jgRJ5NVcLF32Gd-_y7{^uAhz?U!N-L>;d^JZ%E7l7KpbS za)}Ilu0IMWb#WIj&`6pmJb(0&tn^_$lkp?djX#p9h>}n8A#RU`b(9gq^&tIltcqj> zAv{w~Wrop|C7q8V4Nr|w=rf=P3SiA53*-@6M}P zk=u9jn0pmO(dXA(bkXnDT+oZ4JCF~(n8*@FyYkSaR$&_oayF&t_NWHZ&61%HyC!5Q zLnYAjy#(l@bn6SnSu_R>$irzMPbGjW2)xz^OE`s~jk!&Ve-{!F!#u zOJMyKRrYWtxnHxxLyABUcz-D+J|eX2{P%T`6|38Rg2YB358g_g9kA2Hr~UQ1gspPT zd|3?YkTBijuAS%U8gUOcl6LY-dlqqv3)Y3|a#&rP{-3=L#1lN-QtO)5>P)+1Rcx63 zB^fw0P%$O>*FWYt=&a!L*W^{H~OC+Dp>F!t|Sa`kMyoYK)0RLim{gzyn#iG z6F_dDBC>4Z#WGB{e;&h{=6EJ@TZP_a-BB!xLf8WPPT+d{WEd-ZOW)vk-cM+@Oa>X} z1@xkmA;W)Y!~a5E&6|WA*v79C^5=0T&fvLzM&0rzGpffRM~QmUrl~3S^`pzx_AlYe z)fzpk)mkGoRC3tnTU#T{`a`SQAPdqv^`#$Ej5)4<^%sZ$J{Z7wzN*sM&s{2=`s107WnzhF4Z#ro( z%Ca6txP~G>d?kS?2eVA`s{vB4+5G4icm^YQOAcQ!R z5GZM??t;{-?xvC%;L)k{8L~2#_DD)vrA)n$(;^KoyeO2x^D`Q+)mRZQ>i^yqn!dMM z_&ToA*-d9Fpn&qmf>enkRAIEj#>pVl*km!T!*2uDz>8<<+*tq2|4+S%h3b}K=$25y z`z`fhHs0kY%6k!d45hXCk|Vb7lA~XvNYJm5BXq$yz($;uW0VgLhr&B(H}x&3=gWoY zrXMUdoU5j=b;QDg%{rrX4OZ^}Jtd34!^Z+NlJME&Gj2G5+Q`Ff0*k8XXi zqb{0YSZY;#2NFpL{!feBS<5iv;X$ZE1P#N+Y0eFyEmT(U%!o*6v9~hl+jF9@4j0ta4H%73 z%=ZVO9@sxm7g2PGh=#?jOOCxk7{kwX$+}cRxq=v3IbyvhxXx=i)yNdsV!gu=H!_Uk zmB=o=InM3qiMaH<`qIxP*z~+~%H7x_i9(b;qx8HAZ%8#CYTv`uoV48xx&}mX3U#}! z2G04}Jn^|4(KO)fT^qXEr7!pvLwIN|j#2qdEES zuy`Fd7!r^h9M}%5Uv%U&*G!_VW9w+yb!y3>t<*sk{UVyI7~*WDHyxzI(wSv9B7pth zG11?U@UVHe2bsu;Z31r3Gxfp*Cv)xXlsYc57WeC_K>nAHTOEpi5-$|kpf1; zd^bGq=x$I6O|ZQX+h0lo!e~*DktsD1j*6gt<>uzvpjK&fWS4Qa8E;JQSIq**R;_~JDE!o5zir$)f370{yf`pnqhi+%3@h3Zw1J(xvd`$W8mn;Ku zaCvP;t$56&)2SL6Tah<7dn-s9Czg=VZ2`EcbN49(+LnHc4Q|BT>_v2nu6}qsYXmf; z9k9dR6K-8GvX*|nmzb~C+%RHd=2xdWWF0EvSRDXoS;s5ng$i*E$Y&Dg4&{~Nnv*;5 zb#I#m4T`a9pM~le@?EinsDc7~A*zwM3sS78n$AP?dA}?Vd{+NH24hX2>Y|8N+zz|q zU({s+39XU`FZV)Gg+IBtd#=JwQX_39xvu&nf+lD>pzR+g6i(mgjRZifsr)vUNAZt_ zylU0;ACg{1pspzG=(+Jtxh|*b2hASIc*bWrjfiIw<__XsISo?nq__s-J!S8760l8( z{GnO@@Q8y3{Ewde5fCr;2q!6LQm8S!I^E^$4eR)plG>d zWN+;ic?nTc`$OsmbG&ONv!ec^>risr*Cajg)2J1MbL=vJFZB~qL{Ru0={esy5NY#F zhx{zaD+r->13`J=T~RgYZB8%>nAK6~P5qbEzESJ(rvnP++eZ6b%o*)}ix!|?YX%Kp`TI=jOE;>W>1)Mk$#~-l%LT;WaBjkG)p^ z1@7bX!*x!iTsf+2%r@C`{TGD%zgr{MWz6=3$iacaw}dG8v1P-Z3&zYwn+#z5eyxWQ zas`F#Wa&>Fq*emFRsxN@>vcT9g@cu{dzw{f&k?s;!DiV{NO)GIc?)|mGVFRW*WWPM zZK(gc=77@pf0i=K7cB3|dezJz+#p2V60w`DcY?yJo(J$3urxgsp{b1esZC6r_Zb36 zznL$O%>EK>x3UCx{ukxIA!w}!jMCN+PuQEplu{2;?sJw9$o!^_b068?RWskq=jXEk zD48xOt?Gv(;y^di3HhO$?}CO zcr<;`ty|dL4kuI3JYI_c(4;YPLZc`dN1I6}bBJW`FS?@=X14Q7|JVC^fOMKNm~&v$ zwGmkPUso(;F48Tqh;F!Ma$N^X=$3Jmh?bT?)b64PqwWNPzV$cH3_!1!fbrJNNn!Jj0RLwj9Ir{hRN8Gsr&l z*4wi!BDCG`EFySJ$u8Re&*&J7A-iRl z#h>iA$JJ|6FO$15tE5$#mV%bt3QE{@&@!od%w28zxZOoS*CFlRuOv?t>{E0*1O!uA z|LEyG!_e){Gn2F=n@?P!Pob6_PUm2qdrKn1i)Gr1p^nABzy-)WgLK8j&N0a0}4DI zV9SU4Ky4ltA*^&lii3<~ zEv`_uNTMd6JLPU@^l5&C)>YMNOLF6yK8#JIi$JDi_U_iG?Ckb-F}F;NC{Pr^fy;sx zc%hfy*jsTaySmLt&$A1U!!ukZtMy9~)M-|G7zdN}4m%O-G|TzZ9X=9gQK($65tEX! z+ip?BnslM%Y*g1XV^KNY=3y}FJTz>7@ykU$37hD!f|vD5;-1Vjn0ww!U^0>V=Q}oo z<~yF9($t_Kddj&`R~1`vIhX#d(~yU)t3uCF6?vxMn6jDay2ozx#*gPnj|U_gV6TqB zBDt37qn+UN*Jnqb;tyEN6xPCjPlTD| zi}_Zp1}j?5*{jp2AwPRR30uj&1#&)13jN}xzI^`v{&>Fi-fiCjpIt3!Ov_+Wd&z%OjIgw_Qp=y51#s5kbv{*q1x}f6YzSW+F`sCvj0G}M|$siErHLP zyz+ba+}dmreykHNC2j!Scu%{$odSPn?2+o4{(DL2=wr2043+o1YuzF6Hw!r19EmV^ zHJIz-ad+BVz_Uq!TT|dgL*TE5fTza0*4;?}-vMBwtE+0Jt}2V1YVH`Ur>k@fGKXvd zM8GpifIDgQJyG<=(YEok9ZVS;!VswWNG0ThT%M7uJb7JIXkTiYaie@yY9ac0Hl7l+ z4lYjveNR}1?)uNiQXjVHGpFps`JYe5{p8(^(FD_IZ#Ydae-Chg|4k?WF)a`gKx8GH zyv}>gAd$Mh4g(6~qSxB%)++6Pmh=&o2#vweH88K1#N}PjB_WRe9IFf(KFsZ#(O<#+ z@y|qttGPt99Xlqfdln}q%0xfQSZzoUf81`vzvYO?4fWxchTqpe$I)}PMGp$Tijmu1 zd;lgj+;C+bRSx?o%s5l+uiT&Z|vqiifILOT$rzoqO;br;oxSEIsP7 z^9Zc(NWJ=l!wa6fd$N3cd3B)0<>MTqb-wd4VE%@#Cx8glK!YTo-I3rjt_939vl6WT&&g$>Q>CUqpb<&7a9v9-nxy4vDQ;UgQo{T()+Z zN3i6TuY1HH6>uex=&V+rtPU+kCrp6>LdLbF2vSRXEnpfv!7=r?=~KW?+L;$i+6bhA z7uV^eZEg#epPRq3TLnD)7e{C`xF*W@`mox_mJU@H+>`sZErF9htxAviP)%a?-#oTb z-el3Pv(=ul_yc62{1+@Ul%Fa@b65;286hsqibzQwlKXQNnpiGN`a-9PZb~Qx5(no2 zmYQJc^~#3W#i}fO8nXKj9F+e?zzfq-NMS4##yViYv$3q>ddz`rJ!GP_^H7*ySit%`QUozzjPWX~7xBRZ?oL_|_oeYiDX;B~nW{=(q zq^r2TW!J>L<4~tkuOh*W$6!>F0w*~1PF_Gt*Sh&5h*_icFWlI}5U zUKJ&_9JAOzfV4-O^Ue^x0m^qk1gvriNnf`vl5xLUb_ZdIUAsU2K5i$3&bB4*Ho1#~ zAAu##sj%7ykX?-bkAGCcSqX>gR#rn-E>i+GHZkzu?Su=c01}QSYF5M=MCMf{pNzzn z@Zz(c2?ghjuc@Jyx{LO4`)S(K7U8S%uZR`islU0NEgc*qDhb-K{?kq@wzltyRD^@5 z+PJf+$xYaWw>-pgkrDw~~b{gd$`t zY4s2slT{hqmS%c$#>=Y6?awj=cg7SC_@%&U0&9J zlV{fc;w{+5*L_Q9R)k^MXL|Ug6g^a*hTxz(<8Ul4G&rCXa4!E2`dx7ku)MC^4dJb1 znuZvagqbnp{hYa!XRVL&^`^=JU*yd;qAYz9BolM_?m=x+tZj~!K+AZgV*6%4Je*5z zv%QH)7$u6l&i}I&O9hz+c~3t&Sa+-q5I@6}duS(8up)jrcb_L+Wco1RMIX!j>AZMw@1yXz%w1wgOG9%HQ7j~P&7&`g}O=-{TVku06OV_N-4 zmK~7yu_s3v-6@{DMShua_RPV2`nfZk=EkS-R8%o>@wn3xa6j;MG}U@-(3@NPUEV2N zC?Z^`B+QkRU3dlY_lr#ApOjJs`3+}~`dJLnqMs|^g&5VIMJY`y=GrgRBQ!)<_g@ZHfYBZv%Kw~G8 zHtPy6ZX1h(_|ljy_mySc$?6*LH3St<^YhY_d~tlp`w{5^xZSvJhtsmN2n3K0db*8H<7Eta2muSPx~GX?mUo&SW* zN$4$4B0$(ZwECJ3Cax%#Ei187U`Nz;i+|?iC_l&H4nXvrm)^wLqxbvxqw)JseRPe# z*ECqAq8o>aL%ZjF+m8C`s+ZUFq^0^eq4!(cE8ueNd%R3B0FrP*-EDhQ;8mwSExN2j zODpX0{rq~f`mogDuwxUsMfXn5Hxg$Vv#FNpQ0w$C*Yi6$g~=4@IkezlD|`mm2%Z% z=bFUtyid37eh)p(N#~~{ooU}tMRj$@-dpM*H|^j)hi1=Yh3u*xw!HCA92NfLH8Fcl z^=Y=q&%K@m^jUJmuy;}5TyFepIO#jNeapX0Kz8HhxFz3$qQtbLm@N>dk$1%(F9pE}!>ndsWtOcGs9- z>2w=az_Xi%>FSi7_xh@Bd5UzhnVEm8MUy1f_nE=0KhRrr66dUP$+7pbe?8X1%DN)^r)==^j;(|8qx&Fl2X{ zW@AvbwoK`$%9t_>9ow=o7`iLJpxW)^%uT;lOj61c4Z&#naKCm12wG_R!7@TiqhCkB zre5Y$+^qYBfzeCReA&dH0_p93iU{s0w=W=TZurzxxxt8OO!$_<|Id%BF;VX&h@V_~ zPUe_|O>xK&9nmtu5-3gQhDGENocaSJ&8z)H+GeI_LD7KVDgtNql)rjZU`Nt`{F6s2 zDIk5SKTNYU@)atGZ!w#qn3D_s?*NY9D!esXV+rQH9vV;&n&7)DP3Wyo10e*>S0rP-n-8M-IQP z?gok`c6S$BLg(9u@|@Fy=12G$czpW#B;ek1SEAswR;z87%P zscbV!_GjkRQTh%MrKab^4=g2<*{_F=AL(Yytit! zJn!oAXZcK9=_Nqx`^q=d*ol|M%}B zLz%zxz+*D;lia82gIxP#azf*5vcVS+gOlt0IaDY|@Csy%870Ym9=1Plo>P(7J#8&1 z0)Iz(LJc&r1(o@iJgWAeA+29#=Tw~*6ZQEC*2=0vJhVZd7U}^f3N+mRuK2k-I;0_V zPE5}!N4q2pxJ00O%9Xfa_)Bc6UA97WxJ|dn%~j0LDZ#aQYA-0jwceGNrNOY^6+2X^ z_Ff+syG1kJpyxP})reqp(c_9L<8vJS$nU3p$5%4FNxXSP_~o2Gfi$b;2>ss|!-EBl zxt6~}u;(W|4vdb2721SFV@@&t&NC-?munNVMCfm+Hq$3y|75bR2?YkRQU!bMOwgG3 z_DE2gL$3!-sX(i5=qdR`y=keGxJ4v~fJ37y?dn{m=1??3rvq53-)O#XqyeH zPPNk5_Qc2ZJ_JA20Ok2F8tvc8;lkzG!A`j#-BLaBE7`JbWUA|$M!Hn&I#7^hW7hcKB7>2m#41qgoJsRckqrvXK zX?8x1xL0H<-4GT&jgW&qAm45eQ}J2u*@ML0KQy%Nx!0ZfP~hdlgsvt-oVI$fgG6^1 zzJifB2PPJuVZ5fpj^JC~xe7!?q-|o~rRO1XXlbp0qj{rMC5x@VJvW^6>?f zLzau(I4wv$zEsz?nxRoEydZ8crmzjC2){XQ)X$?K&&od+#N*PjCd@IOtGEy6t~Q*W zr-9M$dP>lPJk#^mc(KE9pQ^DSIcfKbV z@Ma&3Pwu!xvDqrmegkdrMg;+<2Pg86@z1i&yT7A#CX{tEGp&$jU~sXX<<$X~fL{fT zEk5OkE#llWbJ3)uF6NgaS9Z*KO?Npcqd2p#XN!kkGr#S!!yaqdj=W}?V;f_b?@{lVb-{v_c0IpBNJU}gy1 z8j+&m<|jqnm+AfYRY0-O_t9l<^7k8Z&GxLr&dhjnfOvL??p+;61Qx zJ0A*_RtKWddoUfa@*CeM82~5=?@r{=CHiQ5>z}u-SR!m;?FZmwdXp(*U zcYZ$P`c|y@WRiX3N%mPweC`T!hDpU}mx|$#6KOK%$i}yM-7G;mb^9$$%3(Yy2TH*> z5NA`q1xZNRizprwQA!o3!2`)a>b5qyKxi=rt|;p-+Fa>KHsLrlDS?~H(H&M0ao zKX>Op^F@QUVO{zRgL@7w&+I>?Lmys#&KHZkDqm-1PJ6qMC@+E}B56(RlIU}`sFw9K zdl=uKq|q?jrJ$L@{ik$j#G4ng*{3?2R^=?`L-~|MLQc>NJS;YUot4X*{jCVAZjM*g z3=(G?k@xOB+b!7je9kCCma6q#aFvBFRqMbS-qpy}%7t-Y7Is06!a)l5=lYgqP&hWv z?4WQ|H)&4HK2Q_S{^OM3pAL9`H(8U;(k7+lplwmI&~<|d3xv~~8Q*Kc&+EFX-QR%%UB@q14uZ(y4pJ;Nr4oF!)O<*I4X_4!TEi zWnZXSjWN3lG|w}_x~MI<`7FDcS4~z zDN`W1`u6eWXzl_ikX;S=!XKo4XjP#+CSxpx0;nCF#HhVB)tnbtgyXZ=07|!Kb~0!R z$7X(P`$!WuY;5*%C9RrkW?yt!EUEAA!G{6~6^8>GNmD~}Jl^u;cHTfn-u9m-ZzEM0 zdF~i)`eed;M*m(F5+)1E zZCj7OJurBM9|kcveX|qyaQiG(pK6~Z3u2+{BgT&q@|&JGPglS~toIja=>5r!8`~_J zy4#0hKk~7CGYWZ>&w=$khtadbC|Mmz4qU05V>*K6HpI&tW7i9ilb;6R5_}+JosB$g zFq!;+{LF(`?Dr0<$A7CuYqNvxH(Y_V1;@N!uls1mM791F%E+Wz+pL++W;Jt7o?E&= zPD9)2zCCUe31A6KkM!(G7%2$}z*m(?$fMSPkQ0(%-v?FVf|Q=m=Re3uIC%0T4$$qq zZE8S=&_VO15u8~x$-$T$3{#{VNUDwNYN8?&Esa`G`p(^2z`%uzJ$O(-?b%Iqg5abD(VVvZv- zvyY|}xtXKMICORf6nAgsWg`FRVct$4v1sb$v^iTevlTG=b)6PTE4^viytu5Y;+He_ zD;X@8(w(zD`WcZV%CiJ@T>Okg42$IljM8*ZcrkVf?NTubug)_j;dS&WCgEigUQCrT z9ad&jepY98&7{9f`fK~Jjr5oAU^To+e?bo%BK`Heb|6dX_>Rc?Ynd9;fvWnY&5og} zlq8xcjWtiH3DA2WVb(m|b_}6ulW(Gg9!Dzfd3qBh=0r(6c$&_)pvx0>vPx~LL&s1^ z`y3MwdU4ESzP}3sa3ajJz|dZg7MnkKu7ZC>NSHLrP}f#sODGdl2R-H5in>%`K_Re; z0(DSogV?43Q3@oeatvvOF;Iv}i^4#uc|UJ5Z*7loRvN?@HImW>2j!V(=&o9)Wn6RA zBLiPz;7d*dzNB+y4@aQ3-TAelqs7>>pnK$YT#VM1O3{0|szM<)|uCtQ({@FGu2LsDNt|=dOLvTMFtiDs zi!2~=z{N@WfCyA~IE8?y`cYE5(zMB3Kk(dP95Ee2AsIHDvYGp&E%;>ew#n+WscOE1 zZ2Rf%>Z*@5^z1Y8-tV4Vl_84ZD*6^*X?+WPysEWt5g=39t(}3b9VK^8KnVQOvd6{h~BE5lfYe ziCnnNlieq1p@4!;_8=tD576$m^0Dm0(sq&fw{ISg@2KXajy>dCJ?|86T<^%k(-Ku3Kl0`tO z*BjuEjcf9SP8dYNo9gvc1y2;ST=H%$k2-dDZ^LCY4zQaS&8Kh1_aS>kL-+AyvaVhy za39qz*RxLdI%*MD^$dVV?q**Cz@uve$Db&C`56F@)!*ss%qFT@IKCWTSR-2(WI!^m zUx77}5q$NO+G+5BB~8TvVh|ns@*o*|uty!?6$Q7n>QoJ474xBeFV`kYNmODl8rBW= z@DxRZ_?yFhW`ev(4@r7I4r^;iZ`UR^xI*5%wZp9bg_#!GMZlKRuxR zTq{`5*8pDS?!72jhq%8%(e}Q^Pti=1#eLiASDUn ziFoTx$WSFQl!(`FVki*@tXIy{8?FH>?i)(P+pSt=qUo|^;!q-9u_oVQGt(tWJ5;Zy zYPnfElw^`d{|@t6)Y2D>dqfE^A&b9Q1DJKsKV1Mb_GvPBciY897?MNhtqis0>sMf1TMoXnO6^{Fz?4mK)YwFw=H#g@7tC@A zH77?%d#zG_9Nyh@ZQ7KqNf%5;#hR6)u4?KUS$Kq(avGXOoTxlV73T_ma@qkYbf@M% z(@yLSn#)t^E}ZNM)A?Urvn+M(9^n97=w;_CoiYeUGoIyd0 zuklk*-DDAMaC=tJe&^ zamMG!lV0Lx$y^FsBJ{J?wcrdwUS-l7F`?LrRu#ROoiAeIB)gjtT5< zMqZA?%SDks1&^5_04id@i5F`QIPun-kl|)I;Kb`UG2p}j>y>NnEz9%|r{CEc1C1VLB|$=E;WX9Ge&|GT_9y zp8^u##4W9#LtKWt(0~)K{*D+&IO_thoyB{{iBo$k15SMX3aoMB;5)0-?u8GZ?%|p) zkyIYtV;iGvdt)m|%9wQaias_nwG^{SaY;>5evOkr^1N~@+$cG7TEP6ON$zfka# z(+&_$oR<4+lhm%w0FG*U{mw(^6DQuS?1_PMQ`#&G;xTy|0~o65^?aG>5uMVlVv2S<~4IY~vn@+8zlcAU6n7{GQ{S9Q$t!$#L3p=acEE#%YYLfaN?vNl`B|;$BElu z?)6>3Lg^VwUVus(V;8YPWGFyoS0Q4X7Py@hX&RcBYD%AavQ20;@Zd)ceiZ3v@S~0{ z$j^`RZ0%I~?OdaWl81V9;!WR%u zPXR6#p^otJurOzAn1?lVpcpz((0^3+wT2E9^_v(vPyp5|qj_A-fVmYz2a0y9?hLy3 zL_Y1il(4 zpO0VUc{*_qh`}!!{G!1x+Fes3zsS>kwR$A?*;D!u?QnOyU>#^?nuwGVl zR-QnExM$al-#9<}j~3$70;Zg)L14SOr=K0Fg4|#Lj@~@sIqTqrcR2oYFKZPET6Rnyc}-{ zFB{^!Rklh|Fhz5eMq^qtY_ddlthaOoHC7z4T^C)j5vYuGXOPFHi?t`5<%|9l&czfaR-HJ=38eLm%DN$W!! zMBSjoh#;2=)*coaNl%pO_4o~Fa6QYE8pQtYMbK{6awesb26wn(Ycot2nz~!t9gb{< zw4D_pL5FD!P0-Dfd5|pf1CZLdT9oP4P4Q?Yt1jo0;w=AKY)x`?B$8pu;=>lQ0!^js zrmc~UPvRhJEZZgQ3fcKNVXbSc)?@U7%tZ9ax^VJpE#~SLd9y?I!edh+Nt+DSZ%dTE z&CA%orO5>U)^e~|?1Y9mcgsO&T*`)sO+xc2nNFkmG_Nv9=2&(HpivkhV+wj(hqDjE-j zF?}$S!@-9h7buNpcxPdZWhajCpGM300;O4W7mYFRc!<#Mb5B*E$Rh`g1;#6qsHiM3SsIR``4k$rF^ST(VwCrCZm5N+ z8lxb_BnoE9gmH5wmgU2nP%>mam0N4AmMB=>Cuu%rdx7xUlK?+t7G==`V%#u|#G+KM zCInYW4N~s@Me+TpvTV)G@;uj_;GuoE7?f8im6*0mR&-J8oG zG^~Wi(7@9ui7%<_g^nfuwNBdjl)SQ#?OsDBj7we(O($-M%UqtwT5GpAV*9NYz9mVV zb6_xM?8L|DUwj-6MMKY5{8InzL2B4ZjoH7{_>@guNR7_&LpaVjmAam)_*hg;+)L|VVL56B32k%9TdCU`!HU!# z3$--{`zwsxm94iD1R16RKE>iEOw0AD7v09-i$g_8H+V&S19?_R&{CAQG)C97E%8_L z3A$rQXW!60-v-i#=Gz1oX6umrmfH&_MZtiJB;r_Nl>64OSIF~Gma{^&F-Oc;VooE=&^fX}G$Bio> znwkRqD?%0F<6mLMfEwKo{?*`Lk$(pN>ga;}{43Kp%v18O{z%gAaS~1j-%4HI%CYQ| z^{p(&CCqUi`c{P-Ad-s8?pI-^5N0?BziRNS2ES^5O^N&}$Ci5%Ek(ZJB@L^LZ#9&U z6^oTqf`(&)3J%UB_N{E2e1_J(Z&kPgqN%Cuc|qHTHJKUwtHHk_{|x@s(FOVWSH5ln zxhI!@Rd9Q>n$5y|MAP74DeGXFx_+|t`9#Sl&?LCs=FfPMAWOq2Yu$viJkzxGv9yB+ zz$zEbGc--ZI4JzDaGt%nO_KQ4SyBA@3s%X(2xkN>FeFXbtBlrQsPJZY~#Hi0h z4T*xwFK^#{x_r-+RKOaqen%!A5bEm7hp#ME&FDqdNbCBmS2-Zgm#;ThZ0$4q9bznCDTI!Ixdey5OQ0L-4&oo=o%z5=H2LyWi>GB$U%9p9rPdJMd-c!BG0d+pSyX4=g zs#iIn&R?%S{*{4`$dEprh11Y{HLIRKFhUO~jWXH$zEeg3E-_u01po{igxZ4y07%-* ziWdM_lFMNAlH3v>>*$UO;e@-@d`vi1qh*T}km_pOb+ck*Ob|`jlG|XK?$iw3>n8-v`s$oTGqlXY z*@7*(O>k4(9ZTZrRzK3s`Yw)%y$q*pt+q~7241}$TeIES-J@yx*{5WBjmAkzVn{^1 zevp|iZez|o3pOPWas}~-irU1ug7B>eLbFBoByKgArE5k%p=BA0xn|KknyqHR^WBs! zA6fd9merSA$>zSqnU5=REAkA-GPHg|tZZ&yd|5X~j~TvWu;m|7?RE8XJ8>b$?k54o z=1RwxffIBWuHr1X4aeWne8QZU9?J_%kGy1aU*yZn4G$Str|TL^kH*$5$CBk*RCga5 zMf2~n--dKrfD6+K*<77L6|#=!nI_TvYDSkS!*UtccrIx(q>$ z@|uTyjTxIvcVlxmkNKuwP zZ93}GN9*XUUUhZaPCwP)K@ak#xamBMpEa>O&~t>+hiHth^S8JmY72aJR6UPugfg@% zLamzb8pMZPy$CI{)h)H?NZ5#Md!Gp&7FjB6KvviC)P|&^jcBaE2n(X%>Q9+9Tc0}w zU;X_iziqHM@Bi{6e($p%fBxym*RNmy^wSx=gkpiTDwhm`@naY)uLN z7hH?K+}ixb*5S`?mp{9!S@Gi!XSweg&F_-4yCh|Ct;-#{pU(af{Qc(Yi?d$OE|xRw z+U2Z#HN&h~?ed?1*XA$f9)BtKTT3}zT!qaQ)zf?nJOHM+=Jt6Rfz*J}-V_){Z7~yU z;#n^_6CihV-`8w|Nf(;+dW&TFe6Dc4JWZHi@x(eC=G5;F z#FU!65GNy6+W%8aBUb)OcSfxI)FVc$VuK)#)MU{(aO4_2B;SdRSjD%xF=7=DZZKl? z+XQi^CjZERJL@Xq@-Mbv&f%9j;f;6r+llj-t$Hbt!g76QrA>1 z@Ns&ccV18E(l2!)?|SKh8##ZWw(cG721M(c>J1LG9--_ioPA5;XuNeUqj0u1F6Dpi zgvv(wi3OPh6YmC_5Z$lX42Z}z+JZv!CTF@j?!7Q zT<%!u7g8VoPB)(3;d6J$ZrHUO0};P7E7G5Lr-8h?n%XZ86xyV5IFZ5KEDs_^O_dtQ zSo!m>k%Y=$zQfnKau1$Y7i6;Pb_P-1nsPpVVRC{S$KE$Ov7q+eL+fuEM)md}%%~}R z;*8ZH3aO9T)B&;caw2etgvRf41P%;rBV0aU4GIon7puC?%a=3O?!%67MX%f%=18y50z>mjE0g!31?$RqF$(lRAOjIl z2ACgI&7wgl1DYNP4eP0aGKiDuG@4I?Nj?`U%#xJ4tpiaH?Nh)RjPIjZXox{?Md~s@ z46-yF=Ze9lSeeM~hhAQ<|?60bZP8Z|z^NTpb>tS~# zLyy@Huc{{@eqC$z=F)laOI;LF8&3VpRaH=bvGVuR&7Jq#Tw#j^-OWpNTx`v+{QZT~ zl~vX}na!g>yOH13mDvnf&aH@>Td3)U>y_2pJh@(9TFr~=RfXS7xX!6coL}kwj#b|+ z59e*wnO2q`x9Ynk<*cka>*{lUcz_p9SC*agWHyhA^=AF9ELCTr-<+!2`C$%TxL#Gx z&XegJD&ZS>UReUqfaRR3<@w>{Hy7!1lJ>nKePTK1S<%lAJW+N~x260XILQ(P(8$N#@_%YB zGDiyVLuI`1a2Fx~XCfbTK_mC}UCCIQ@-60wWbPBMf+;|4;2WT*bCRv7Q z4bx9{*W7Y23TKNV=f{DKZ0Dd@wyinC9F(0kw|soApjdL?BU6N#WqFRP>Qw3X=q_Bv zS%oVj!EkAl2$DXa%xFYFdZd}DHNW5qqRozRTnWV4QNEul>g*Wzl|Y^y=l+SJ&)Qgf zi4kb+to=!$(2j9j2_)KaeLqn&+A;1cfJi&a`_n|F9rf~5K&G|u@=g++c8vM|+x!bu zZOxCcLJ*`{8~0ZxwAxV(I03|33#V2Z)Y?&gDvn$`#!ETSYe%`LHiE5%LP~&QJI+L< zk!;79C?A^b_)Xzd5N#s*heDv+T17`?Mz|f-ffGczwM>D@iF7;4@DoG39b>ivh_~bC z+$o~ojxk;V-ggeIk0S(tm9_WTz9ihDdsJLTV zpa3%NxcNIpbX+UO%ZZRX%J7py$+ZnyNQ{&_uHh$#ma|;=T(1J?B|xP)1TjZl2F?;O zhnX=9^(uY(L(CO_8zy=&2kaDd6&E$<7^ZFwsJWdrxsGFF3$kJ`k4;#RRmGW?|449j z)iA@0Qv-|qN7BQpjH=>BwR6Vy(6A4xCpQ!+WYVyxc68luk?y6A@`H!gPG}KXD z5SUY=k17+ssb0KK0NB*zc}jz5s^_5MP^Mb$$$??2=bPH#r6#450JYS>Hl^W8wQQ3Q zr_|uUp9(;!XD3bwEK+lvvAcpj4r8`z1^fijN5@h`a>9=4S$tx6qgwVV05obis7?`K zRLg1wphXR=K1EDXi=3~tV4?;*&xH9Ss{u3;&I7(76AFNU2enM z4fw8IUaNueYUKEU^Qz#x8d$Gpz7Ke>YTGU|=Igj^KXu&Kme*=vznXP?z<(X`T?GtS zBi9EU*r6Y%1QzUwA2;B^_Ss%lPW=3@R3*ht91s^9w(HkQg%4{K`P0OR?Rcy5;KUj^ zd3so}Ef*!hi#77^7_VXU8Rh4ujT2bun>hTgg`ei`H!H20U67%O%C6HM08DacPI)2br;H&02kO_%zot z!SksKbXDIK-4Ki#eYrJDkQ!!1_tU9-%{Kf2q_zuE%hGTh&8GntsW}?w>Pih#(+7~+ znN%P(&37#0bO13oYf-;=k#xb4F~$Il;p62U2tu{HNAI)I%oBCmY_!sAqjAJU#IRJb zHZ66Q>K=p8BP8F`F zW2g>4_(qLc+r{j354<5UYr6=XPGL3t;1v~osl?ax0+MN~IhAOct|2h|;1Cr&s=~tb z0cdIKuvH;jI)!0? zV!v9r8%WI*KGBxcAL~iY7#v|}T^_DgD2WcB4sG4SD$Ik-Kn4L_K~XUd6{JemS#^HI za5ql?k%S)(pdlh(s;Z&}aq!dQ3K&PH$c!#s;RA?9=QxX&OgRKxbcmwhS5jZWk}5bw zADD=?r(P8}qFclRzw-AA_EbS1`oJ%=Wlt55p<8qUzf$$aEEY-lg?-U^TlQ3e4!T7W zbXHD&@b*-7}9sPr7plGnS3x5V7Fgzm=aR63SaJF&f1^)yonu-D=~87xV{flCn~wGz~G6aydP#yRC;+TjGt)X zWP8h6xunjF)rB#ZiWz`kaf(poPSvE{<#X z$xXZPU5|9w!2#T=zy}FXX$}EeQI~BRzfX`AKwfz}rh^sqMGx3W)G%wur?Ag!`7Q>55F`YA~0dqFI!o$xSp9-?hbF z)!^F_MxcmUUtLjD{kv7gMK$h@rMF%cSbk1dcO@g8`Y6Mqpwrj+hcJqf4WazN2pKe+p%CJGW>EiWJM!_^Z18XJeJ^?*?zxLak z^OOGCzrME$;m1NE0My?o4 zWx@g_GTb@0T^q%`XP$Nng|1muD|UA<+qvchHvGnoNjuBACE2@}-AqY&IcGJuq znJK9+^DJf(lf!rRGA;3?owZD0c6iTLhL|1cW+}I%dv~*wX(eCcS;;MV(A8{YT8Bs2 zS;#DFKPX$#v_0KBn;A@fy30EwnBa70HxrnW&Qi<(ZhvO8o%u^iQwe7LwxlS-nZA^? z6n}7dp=R*1bU~P>*~?69m{m*1h#qIt5=Ib95J>9Y zEbQc0%GtAI!9xNUm$WeoCDA3EE!&dhUColEwbruEj%`W)u4cv3l3&)@u*6Ywl4~`2 zw+34BD>D1F6*oxAT#gW~`vwbb)xE=6u5_f6dv{Va4J?QM!by-+%RXeid>M#e0N3Av#)fF8pXbb8bQ@(mS&Vxc<O=4DAx*#+kqocsIY$}L#`7kbylU^7L zIf$vr&+;TTEr+bO)F*{v1lUZizYMim@AhB+8C8omabOJLf$iq%zT%f{Qrsp~q z$-8iqII@0NjJsp3MeY2&pbTe$V=wk4u_PHGUXsiFPZM;4DHO8$c#5kRCQxig7!I|DM<>cC@|&OFg5`$(=W0 zVd$I~RMj-L;R__4V+m;wY_rP~T3_W`^^LWs@U0XF-`Dt7+|l^NoKOdzU+pn&<&!3QHPBby6Fi)ZdDE+ zs!Vr?I=;L#S>WFzf|wtBO(W#$7GXI$F|24Gpjwo(ic?!Cd;18>@rZ#DwTOh5sM;pt zg6_gqoaH;enrA4T6SbbKE5+PAgk+^}>!tv2-(3|;=>otBELS523m=N|9>FE1E>j@9 zt=YsqQTFXj!61;G*<%j5rQoFUw&oD`>}hzrsvz}pf&aq-%%O%jnidclxnUX`aja*U zI3jA=#E!y6vWU=xnCFCqD*UKHu+P?PvP`g@Em+N&U*gEMWf7ZR_Htd3)g2`IY|S9s zBzA`nBsym@H%^Ho%M^fE_Oe`24l>B{*_uI)2ShAyn9Pk+;>fb&6RSO?ESI6Rm^RPI z*=f2Mzh2zZB4}M!7U$~iXG!mp;C=yYmCv<^T_dq1iYPiYV6u;|COank&_-aRo~>?+ z*xp^P{me`Tr5$2oJqBEM#gc627;ZFb1utTRtWi_Z$MRKcisP6*qB?KM@)1WWmyX(n z^Yd`|G#~HQc5aGX{g*H4=FXSw;ya+y#F~O0mZYgENn!a2vZ9Kk%-AcGIK~DJwGT{* z!(aMq63`Wo=ryYmh(SJKlW_y|rEFyA!+cSW*7K=2=lH1iC=1y{cevwSjwN)xQHPYTf(D#V6nxs=WMSNL7LV3T#0oQ@^~S+#*4RkJbJ zAcs07^EJD+*_gz_+gpi=Ye^!%lA8%=;jybbzDYUQ=^=?G8zM?hMe<_g{p)MN2{08U zzmH-G8}iC- z8K5aH-s1a1$FzM2;}v2`VQ7wvJB8&HUT|tFPaiT3XcYFpGhb=1%X0XXgaWi(@|@xLa0%PX15r~ z>OV|_1ZPwtqDjQ!?WW(RY52sBhK>)Tq2qbBK}o|rLnynwBrjAw)OMGtwio393LWY$ zP(nRT_t+M<9Z*>IilOJhO(ILN%+!@df+e>UK2VDD@V84@q){K9jg$FQjUb{Alw(X^ z-{eVO$<45#i7vo0(-tngCVg(KE`F$taWHha?Ajjl41+?(K^I+srOz=K23&?YlUQEy zHNZ}=WqFjfixp1rrmg?^`E!H+-=k%88^uv3c?FYUg70#cuTeV@J7X29=>0ZD^YCqq zMO%eChhYN6dc(2Ks4aU5nPCx&_g=v9$0dHFAp42rZN7zRI3s-S?g~tr{gnIZIG$(O z2B@75RX-h~hC0_MTcvZ_Nby#NKCI?rb|T~e2FI*L=;xmXDSG(`E=6DimJ8pvjNzH# z5H}UsmA@YgA$)bFj0ol&g^6H$66|h+G=o^PjKm5>*>jq$MfLzAr3#I}26<45z0aT& z-6(~42aM-JuYfkb1oFF-#BnkX^Qna80b`P11bt!?c1UxZ@*>zo?3-{pMU#D!V{wz6 z-e4KGe62efmz&xq`OL=y>9%#?s1G9PR>7v2np`q2Z*902q0}1ZLI6qsA%^xK<91aW7ro7}digw|9yu){R*(vM-1$)CKt`wHN z#L0BQV(d8vWpJb=k)^lLVo+8?5HnUyYvl2aR=WpoUmU)HNcXnY?G$MPm(n)f*epFu^K?rnuQlc&4H~Ntl4lXXD&3|sk?@0z~TusRG0m*g=Ro|5_Xv> z&Op#jSSW{v;))!v(8Oq;W=3|>vk-g+?j;TBRS7FV)2Z0p`#NMY4k7Usax0;^R^2r{ zmqFvTUH^W3AEs)U7if+(r!Vb9xK{L4#fCtWthpVxm`BIfgqEAMHZ-Zq-A2f3e{EsB&;GATpOMMv~+{I z3~HaW3OQQv9G|PPNH(=kahLH*N>~qgzR%S>21g!*1*+H?cqY)cZRXLQ*1V9M`tVF( z|Heq-vjCnA>{a+BraU|ch>w6ytGst8uZZ!7rvq)%eo9Jz5&sY0p6PZ3bQ@73~#? zFgWncrVFSwrl7t$-lYTYEz7+-p5)REZzJ1LhdkNo%%J%M?a1K9p#t|Q3MZrR4oTkY z(SasQH%%)bhb2|R3CRT;+$mPq@&;wR$i64vqb$spl2aVqGFI1ebUtrWQjq$u;d~;! z2MF&X>v=wh4)=Qm-?1?Yv^aIZc~(y|Sd?nDkMbVph!XcwaMBes#_zPrL0iVCa%qJp zWt`_Vd7sH8OFa@j~ z!r3axIRef$V~#l8bhbLNn2HOA<9ZqZ>Bx*H>iE4bJbB$oQdM%f2dA!eEg$p5o653} zX>#FHPP-`)=$OP0VZ1_Y2`!UAOKv=%$?8oN7}p9e*+~pfPx~6bxi$wb$@&LH35>+n z8a(#Ya$M%Kn+ghlU1Slq97>oE@RU$i>iYRP{t^C%Wr1-h8oF#EeM$uU zz)4llv^D0vA4wRXN_-EVMb&+Wd3{bxPRLDr51usb+YHHjwtDa!X^(<0G2P)QQ7rV# z`$)BS*? za0X)TuMs~`x5PNnlxlb^b;DOs8W7|dFw1}AY3i*@ZY^biew6lMk z(x9Khe?P6;w5Sj__Q2^+OlI2FM2*?za5_bkHKD&{sq9n+r}k~n=K%Hp7$>)3d^uZW zD#WJ2|C;L5U%CsvFLt-ZmniMUp z2kUx@z3IBD_!!W%r>7gx>GkbtExTm<&_rhs)RtSmeQ0)b!?jK+F8dkjLxX>=XKAz( zO~czIrfZxn14A=x&C{*(^JG3o!Cf3qB^PFBXb;oX&?pbaM!HIGn4u9nZW1dqO&Pcr zv{O==Z0^Tf{=Wdu9HyQ8It1 zy*>XR`|UX=o}KnYlG(y_45f#8L>PDf2#15>wM9 zme4)({_{_Rg$H~F3*U`}7cCdz=M^HyN}?q$?MoB?`yJ^uoXTky&(I!tqFW}_WX^i z@J^JRpIndBUvQd_za3(!eh>36t6y))AtFO1=0Tt2>M**-BPwgVZu_3?A zhnhj&+^53i4EAPsnZe%Fe+GNgp}pbcs2E^;hVI}CEB|QshgBTQUdCZS;Tl+I44b+! zcY9*103$HSp&QLTk=FfjgNF$H`6C4}6*&KL`IX1Ux`u0!jd0*)V{MC{B;q^bAdFNW z!G%%03x@3jqGsC;<3s4I<)_${Und_XPbs{s`7)Z$(c}!vj1t0X11&*5?%JhBi%s$~EXtxV#)L_OI9g_J$|U|p zcIpB}wWy_sOtNmKt_lJS2B_d02<^46$s_w~xO^97%Qw30GE9zCIXuoB4#Q|m1eX3t zbAdwa8k((9(l{@MG>t&wx+Ievu5(B}ow9MyGx=mM?lQ?iCHscd)o9(Sc6zSDapi%d zl$}snVmXF(@nUBTBo|fkbR7Fb=^y$(>4->lCE4!zZJLHp%t&bI#FcXg+HUy#Vzr;6 zahj~h=jId8(dyU`b%LN)ocM+Pfdld`Xa9wvDjWPhZn&%0X)*|%VJo$5uCf~xRI0+|8 z2$BVD&7M=AvJ(iY2Cx4sztyzi60fn#&r}jyb_#=~8k<-iqwKa6mOWf!fd^&uYqw>l zye!f!xfLNFv~iHmMGU0Wmi_p%;dR#CSrLiJ46dy1 zT&CqV**1f^YMZvMnv&qs8*XS-b?)Ms8oNeT$5o~8o2xs%DN_@7@*sq8AlAH{H&EFI zO>6lXG_6BTiF{yKm8){#n~Zl zT`e5-C3ntTxcr+g<*kkp2V@V@xo{;Af(4Rmf(Phn{X8UWoouZl>fMH@VH|AleZS+c zVejwNS%Lq;M4UwH-+6=YjHq_Bd}S}}^}qb^!!PIOxnoeV=3N*s(KFAU|GW8h+5I`! zu}lNnq)`}uE{77D&>qvYZ^OJ}cK$ZLA(3|~cXNK*1Iz;{4B24C+O05Hv5I8|D^~vz z*NSnvUg!0$Am3KEU7xn{tr}D>f2RTmid52VY|NQB$R(T60Rg_-;VyB+c&I0qtY zX_O*+7bl?-JtZ9S87vi4q`YQKl9eJofE@=YjCpGg+PcZSHHTxV(c{E%fb!_-p5{}U zPKA2KI4)Embx)@)hEz!&UFcEnSRUETgyyct>l)IcfOH#>kvA{yc+hK<)6;RJ-{$}mw~P=QD#Q6+bSU1)ZUkElva zP-qfNcWhmQr5g*n=2TTi_o2BkOjOf?<;g3ED!cAOlV5y9Ret9dnhxVcS9t{$ni%tp z{JOwC6@Ix`UL=dBtNCJ;jj|Mlv-9&$(JabtlJ96Pxy^+p(J;|X9`y&!M3=o0mkZ6g z^&{&t6C5t*eGpvwQxcrC!*r*eqDMw|$qhL;dB?vqw#4QGoUt=}LuZzIZW3b^N-11u z+Abdq$+0ckyJR(=pvm7au12zZA|82aZ%eB2efT_?_{Y+ptALza;(ZI#CAvuP-yh}g z8{~Mt21Wt4C&BJEm?JcEc`$5=FpV4XQ)v-XU}H`;_yNITl zVfRc41X<$a7Cf@az_y0N4AC-qrT1yTlbJdrvg9TiJdOz)3))L(3qQR~@ALEbVHQd( z)ZoEPnAR?3DI*oFr8gtcF-_#&Y30>QW(opjmK6o1_sXF2lsw1KY3Dh&!InsVj=50V z%9*?pn*dL6$(7$Wcwph}0Cy(2f$+gnY`HF{qH%?4YCWI9&CR297+N^FH{*ijxpyl! zp?wW1(57bUoe)}ui?XjlKA+KY8BS5ra^}?;T}mYi)3uo{C6ggMNTSu|dQ zn3ccEst~sK9pHHFTy}ur6l3ruYNDV)y?N%f>Jb%mY7I4pD!?r)*LLJtWky^+djIN z2mdzzGn!9=YqVU=(0_cqxCqSG8uzFE{fm{)AJ&cX{9*jJWco6ASl2!!(~WxDAL7;W z{_;VHec9W6eZbZrzR)kf{W^|DRv_f|-s^qQ%^79sMVP&_$B&P?etG@tmys5DZ{x*% z_+>S_9GRUEY?>~{x_J>t*q&@GzOKKWOg^J5oL~YK`^wxPD0ZnE*k{3>%d+Tjay1^| zU(QdJAWOq2TV9PXM7%gd41*X}PmVra#qyOO2i(ayzvIG>~VZ92uKX`U@Rdb+bd zkjyBY84tQ)2j7x78b9Ha;VxXo8P>FA7S6{gxa@v2&J9{-SK;g%N@vk>8DXCSTkZw^ z57LdRjR_e287?lrjf^e?wEh0Pys^!PG?`(A6K!v~3I8$*yk|$wF6PvW#ou0}-&xDP z2(q==O5b9%*@h?*v)N8B!r@=N{k(p>`vv_u%2u~IPcmIw;sX;+f<=~I?b-4|jPAlQ zx-5=eE70})dtVn>F6teU&n~VTy18@L!0)6RZ&%s_ zhxth-sLg_;^MzlVrEu4>O=zm+G^y!Zz{T?Ub z1mE!fwZhjvA&o-KUWGFbHTx9SNRaJUY$A(cGz{Y-%F1>_coC@Cuqfo*=XFh(Q3%1T z*{pbGs%E1C3u*O+1rbs+SD~`IFTB#%?N}s&mOVl_2wJgYK?rJnik3T8UTk--cDv%4 z(%P+xE32ei7M|3CD4Bhc<_)x@^8V`gEDBNIqZr9X)Y?6ZLe$H7Ue+ZSQET@s3Q;S} zlgPJ~`u&P`%GU2yV1cdOvuFbQ;kqwTfb>hg!UReB;RFo!|OLK2wC0ABUWT%(6nRmtU=Rm#g*HpU5g^Pm8vB? zVe>W}(xr5pb}fcDn0ip&TdzRz^&YJUGw=-KbNC&NvM^gMbF*~47+(6!B9lL@+{X~&Q+;uo)XHNQ*xexoru)7#xN04jcrt*dpDhGYEOePN*XU*K{+ z87;#3)oc-8UVqWeWPuM;e8|sGmgXm_jVV4xR{lGiSLpSuD($?Gnzf^MS>6|c2)Tiv zT-od+r~2ktcE#M<9{%swovn(r*WS*c(so8D+qSx@?CP{pu@?&F084L%J=ka#F0QDW zV|@rlnH6IrbcO$z{}lgq5k{C-`9I+wU0z;~{pI)XzCQN6 zI|rMIyJ)&f(TlxkWk!15w)-~A!twpr8x)r|c<5`mCV(dTecvfzEc<|uqX&*a}&m%d5we@hmtILuHkrk++P&S9zPBX-TIsjjqA*%gy*=U7q+F*yE@7HZI-@UC#R0!{uy|Z5nTDLFc0XvX4^E zs@TK22<2Or>c&Nk!t^F7Hrl1g9p9TdLfPe4nrNM<)Xv}N>Ob)YALycxqP~~=d6g9d z6F1i^arXIllqSUh$YnmvvDXv(`1XpkdsAG630SHI>$EuF_(tCwy;usr*um#;`F+RB z(fgpyb}!vq_g`y^SFJqQ(Ft!V_D~9&Up`_#Jr78S@lF6V|Lu7v8@&1bi>?*+HN1@; zbUnAVakyLtn+(KVa`_(@|Mg#Q-(3azYqRtH82Hc2sP`>xn0PQ4%F2B=J6t}^#~ldt zv5j=Pg*voI<#2<(=tRCrA-2~D!0KU#ZOv8>TdTN>^($<38|ri`dl#!to;}KZ^f*Sv zMfN{Fe!6;xZFFG1wzxkV9~NN{ZmzGvb`Kq%5$i2v=rPLHuO1k$jn{TJ&%H&{Xdd8~ zAK!QW&S*aA>B)ByHbv3DQTOzouEKN@gttkWb^g|yXOI82ic-|m(^C{9e7WiT>5Em0 zf`=&0R$<)v!&8*ywOpM)H!JEqo^8wa>95_+p5O6Xqcoi-!SgBFt$I&q$vjx*RSp6F z%W^P%d<+&ST_(9D%btP8_-`PKm%$WeK{%PD+XwT0 z?%Hs7C{{Bx8_yP9KXLK&@ Date: Fri, 31 Jul 2026 11:43:43 -0400 Subject: [PATCH 4/4] Manually update READMEs, quickstart, and top-level stuff --- CHANGELOG.md | 7 +++++++ google/cloud/agentidentity/CMakeLists.txt | 10 ++++++---- google/cloud/agentidentity/README.md | 8 ++++---- google/cloud/agentidentity/quickstart/quickstart.cc | 8 ++++---- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c250480bfcdb..e2e9c1dfc01b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,13 @@ for details on updating existing applications using v1.x.y or v2.x.y. ## v3.8.0 - TBD +### New Libraries + +We are happy to announce the following GA libraries. Unless specifically noted, +the APIs in these libraries are stable, and are ready for production use. + +- [Agent Identity API](/google/cloud/agentidentity/README.md) + ## v3.7.0 - 2026-07 ### Removed Libraries diff --git a/google/cloud/agentidentity/CMakeLists.txt b/google/cloud/agentidentity/CMakeLists.txt index 1fec1d16a18ea..a30ea0999804c 100644 --- a/google/cloud/agentidentity/CMakeLists.txt +++ b/google/cloud/agentidentity/CMakeLists.txt @@ -29,8 +29,10 @@ if (BUILD_TESTING AND GOOGLE_CLOUD_CPP_ENABLE_CXX_EXCEPTIONS) COMMAND cmake -P "${PROJECT_SOURCE_DIR}/cmake/quickstart-runner.cmake" $ GOOGLE_CLOUD_PROJECT - GOOGLE_CLOUD_CPP_TEST_REGION # EDIT HERE - ) - set_tests_properties(agentidentity_quickstart - PROPERTIES LABELS "integration-test;quickstart") + GOOGLE_CLOUD_CPP_TEST_REGION) + set_tests_properties( + agentidentity_quickstart + PROPERTIES + LABELS "integration-test;quickstart" PASS_REGULAR_EXPRESSION + "Permanent error.*gcloud-cpp.retry.function=ListAuthProviders") endif () diff --git a/google/cloud/agentidentity/README.md b/google/cloud/agentidentity/README.md index adf913b0a2534..3f23c0d3d8b7d 100644 --- a/google/cloud/agentidentity/README.md +++ b/google/cloud/agentidentity/README.md @@ -16,7 +16,7 @@ this library. ```cc -#include "google/cloud/agentidentity/v1/ EDIT HERE _client.h" +#include "google/cloud/agentidentity/v1/auth_provider_client.h" #include "google/cloud/location.h" #include @@ -29,10 +29,10 @@ int main(int argc, char* argv[]) try { auto const location = google::cloud::Location(argv[1], argv[2]); namespace agentidentity = ::google::cloud::agentidentity_v1; - auto client = agentidentity::ServiceClient( - agentidentity::MakeServiceConnection()); // EDIT HERE + auto client = agentidentity::AuthProviderServiceClient( + agentidentity::MakeAuthProviderServiceConnection()); - for (auto r : client.List /*EDIT HERE*/ (location.FullName())) { + for (auto r : client.ListAuthProviders(location.FullName())) { if (!r) throw std::move(r).status(); std::cout << r->DebugString() << "\n"; } diff --git a/google/cloud/agentidentity/quickstart/quickstart.cc b/google/cloud/agentidentity/quickstart/quickstart.cc index 28848eae665f9..c97a8678653b3 100644 --- a/google/cloud/agentidentity/quickstart/quickstart.cc +++ b/google/cloud/agentidentity/quickstart/quickstart.cc @@ -13,7 +13,7 @@ // limitations under the License. //! [all] -#include "google/cloud/agentidentity/v1/ EDIT HERE _client.h" +#include "google/cloud/agentidentity/v1/auth_provider_client.h" #include "google/cloud/location.h" #include @@ -26,10 +26,10 @@ int main(int argc, char* argv[]) try { auto const location = google::cloud::Location(argv[1], argv[2]); namespace agentidentity = ::google::cloud::agentidentity_v1; - auto client = agentidentity::ServiceClient( - agentidentity::MakeServiceConnection()); // EDIT HERE + auto client = agentidentity::AuthProviderServiceClient( + agentidentity::MakeAuthProviderServiceConnection()); - for (auto r : client.List /*EDIT HERE*/ (location.FullName())) { + for (auto r : client.ListAuthProviders(location.FullName())) { if (!r) throw std::move(r).status(); std::cout << r->DebugString() << "\n"; }