use crate::Result;
#[derive(Clone, Debug)]
pub struct AgentService<T>
where
T: super::stub::AgentService + std::fmt::Debug + Send + Sync,
{
inner: T,
duration: gaxi::observability::DurationMetric,
}
impl<T> AgentService<T>
where
T: super::stub::AgentService + std::fmt::Debug + Send + Sync,
{
pub fn new(inner: T) -> Self {
Self {
inner,
duration: gaxi::observability::DurationMetric::new(&info::INSTRUMENTATION_CLIENT_INFO),
}
}
}
impl<T> super::stub::AgentService for AgentService<T>
where
T: super::stub::AgentService + std::fmt::Debug + Send + Sync,
{
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_apps(
&self,
req: crate::model::ListAppsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListAppsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_apps",
self.inner.list_apps(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_app(
&self,
req: crate::model::GetAppRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::App>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_app",
self.inner.get_app(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_app(
&self,
req: crate::model::CreateAppRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::create_app",
self.inner.create_app(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_app(
&self,
req: crate::model::UpdateAppRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::App>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::update_app",
self.inner.update_app(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_app(
&self,
req: crate::model::DeleteAppRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_app",
self.inner.delete_app(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn export_app(
&self,
req: crate::model::ExportAppRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::export_app",
self.inner.export_app(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn import_app(
&self,
req: crate::model::ImportAppRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::import_app",
self.inner.import_app(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_agents(
&self,
req: crate::model::ListAgentsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListAgentsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_agents",
self.inner.list_agents(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_agent(
&self,
req: crate::model::GetAgentRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Agent>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_agent",
self.inner.get_agent(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_agent(
&self,
req: crate::model::CreateAgentRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Agent>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::create_agent",
self.inner.create_agent(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_agent(
&self,
req: crate::model::UpdateAgentRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Agent>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::update_agent",
self.inner.update_agent(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_agent(
&self,
req: crate::model::DeleteAgentRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_agent",
self.inner.delete_agent(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_examples(
&self,
req: crate::model::ListExamplesRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListExamplesResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_examples",
self.inner.list_examples(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_example(
&self,
req: crate::model::GetExampleRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Example>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_example",
self.inner.get_example(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_example(
&self,
req: crate::model::CreateExampleRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Example>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::create_example",
self.inner.create_example(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_example(
&self,
req: crate::model::UpdateExampleRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Example>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::update_example",
self.inner.update_example(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_example(
&self,
req: crate::model::DeleteExampleRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_example",
self.inner.delete_example(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_tools(
&self,
req: crate::model::ListToolsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListToolsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_tools",
self.inner.list_tools(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_tool(
&self,
req: crate::model::GetToolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Tool>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_tool",
self.inner.get_tool(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_conversations(
&self,
req: crate::model::ListConversationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListConversationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_conversations",
self.inner.list_conversations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_conversation(
&self,
req: crate::model::GetConversationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Conversation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_conversation",
self.inner.get_conversation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_conversation(
&self,
req: crate::model::DeleteConversationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_conversation",
self.inner.delete_conversation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn batch_delete_conversations(
&self,
req: crate::model::BatchDeleteConversationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::batch_delete_conversations",
self.inner.batch_delete_conversations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_tool(
&self,
req: crate::model::CreateToolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Tool>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::create_tool",
self.inner.create_tool(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_tool(
&self,
req: crate::model::UpdateToolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Tool>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::update_tool",
self.inner.update_tool(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_tool(
&self,
req: crate::model::DeleteToolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_tool",
self.inner.delete_tool(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_guardrails(
&self,
req: crate::model::ListGuardrailsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListGuardrailsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_guardrails",
self.inner.list_guardrails(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_guardrail(
&self,
req: crate::model::GetGuardrailRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Guardrail>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_guardrail",
self.inner.get_guardrail(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_guardrail(
&self,
req: crate::model::CreateGuardrailRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Guardrail>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::create_guardrail",
self.inner.create_guardrail(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_guardrail(
&self,
req: crate::model::UpdateGuardrailRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Guardrail>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::update_guardrail",
self.inner.update_guardrail(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_guardrail(
&self,
req: crate::model::DeleteGuardrailRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_guardrail",
self.inner.delete_guardrail(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_deployments(
&self,
req: crate::model::ListDeploymentsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListDeploymentsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_deployments",
self.inner.list_deployments(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_deployment(
&self,
req: crate::model::GetDeploymentRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Deployment>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_deployment",
self.inner.get_deployment(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_deployment(
&self,
req: crate::model::CreateDeploymentRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Deployment>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::create_deployment",
self.inner.create_deployment(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_deployment(
&self,
req: crate::model::UpdateDeploymentRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Deployment>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::update_deployment",
self.inner.update_deployment(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_deployment(
&self,
req: crate::model::DeleteDeploymentRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_deployment",
self.inner.delete_deployment(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_toolsets(
&self,
req: crate::model::ListToolsetsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListToolsetsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_toolsets",
self.inner.list_toolsets(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_toolset(
&self,
req: crate::model::GetToolsetRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Toolset>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_toolset",
self.inner.get_toolset(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_toolset(
&self,
req: crate::model::CreateToolsetRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Toolset>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::create_toolset",
self.inner.create_toolset(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_toolset(
&self,
req: crate::model::UpdateToolsetRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Toolset>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::update_toolset",
self.inner.update_toolset(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_toolset(
&self,
req: crate::model::DeleteToolsetRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_toolset",
self.inner.delete_toolset(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_app_versions(
&self,
req: crate::model::ListAppVersionsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListAppVersionsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_app_versions",
self.inner.list_app_versions(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_app_version(
&self,
req: crate::model::GetAppVersionRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::AppVersion>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_app_version",
self.inner.get_app_version(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_app_version(
&self,
req: crate::model::CreateAppVersionRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::AppVersion>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::create_app_version",
self.inner.create_app_version(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_app_version(
&self,
req: crate::model::DeleteAppVersionRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_app_version",
self.inner.delete_app_version(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn restore_app_version(
&self,
req: crate::model::RestoreAppVersionRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::restore_app_version",
self.inner.restore_app_version(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_changelogs(
&self,
req: crate::model::ListChangelogsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListChangelogsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_changelogs",
self.inner.list_changelogs(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_changelog(
&self,
req: crate::model::GetChangelogRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Changelog>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_changelog",
self.inner.get_changelog(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_locations(
&self,
req: google_cloud_location::model::ListLocationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::ListLocationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_locations",
self.inner.list_locations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_location(
&self,
req: google_cloud_location::model::GetLocationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::Location>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_location",
self.inner.get_location(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_operations(
&self,
req: google_cloud_longrunning::model::ListOperationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::ListOperationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::list_operations",
self.inner.list_operations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_operation(
&self,
req: google_cloud_longrunning::model::GetOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::get_operation",
self.inner.get_operation(req, options));
#[cfg(google_cloud_unstable_tracing)]
google_cloud_lro::record_polling_attributes!(&_span);
let result = pending.await;
#[cfg(google_cloud_unstable_tracing)]
{
if google_cloud_lro::LroRecorder::current().is_some() {
match &result {
Ok(response) => {
let op = response.body();
_span.record("gcp.longrunning.done", op.done);
if op.done {
let code = match &op.result {
Some(
google_cloud_longrunning::model::operation::Result::Error(
status,
),
) => status.code,
_ => 0,
};
_span.record("gcp.longrunning.status_code", code);
if let Some(
google_cloud_longrunning::model::operation::Result::Error(status),
) = &op.result
{
_span.record("otel.status_code", "ERROR");
_span.record("otel.status_description", &status.message);
_span.record("rpc.response.status_code", status.code);
_span.record(
"error.type",
google_cloud_gax::error::rpc::Code::from(status.code)
.to_string(),
);
}
}
}
Err(e) => {
_span.record("otel.status_code", "ERROR");
_span.record("otel.status_description", e.to_string());
}
}
}
}
result
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_operation(
&self,
req: google_cloud_longrunning::model::DeleteOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::delete_operation",
self.inner.delete_operation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn cancel_operation(
&self,
req: google_cloud_longrunning::model::CancelOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::AgentService::cancel_operation",
self.inner.cancel_operation(req, options));
pending.await
}
fn get_polling_error_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_error_policy::PollingErrorPolicy> {
self.inner.get_polling_error_policy(options)
}
fn get_polling_backoff_policy(
&self,
options: &crate::RequestOptions,
) -> std::sync::Arc<dyn google_cloud_gax::polling_backoff_policy::PollingBackoffPolicy> {
self.inner.get_polling_backoff_policy(options)
}
}
#[derive(Clone, Debug)]
pub struct SessionService<T>
where
T: super::stub::SessionService + std::fmt::Debug + Send + Sync,
{
inner: T,
duration: gaxi::observability::DurationMetric,
}
impl<T> SessionService<T>
where
T: super::stub::SessionService + std::fmt::Debug + Send + Sync,
{
pub fn new(inner: T) -> Self {
Self {
inner,
duration: gaxi::observability::DurationMetric::new(&info::INSTRUMENTATION_CLIENT_INFO),
}
}
}
impl<T> super::stub::SessionService for SessionService<T>
where
T: super::stub::SessionService + std::fmt::Debug + Send + Sync,
{
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn run_session(
&self,
req: crate::model::RunSessionRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::RunSessionResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SessionService::run_session",
self.inner.run_session(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_locations(
&self,
req: google_cloud_location::model::ListLocationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::ListLocationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SessionService::list_locations",
self.inner.list_locations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_location(
&self,
req: google_cloud_location::model::GetLocationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::Location>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SessionService::get_location",
self.inner.get_location(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_operations(
&self,
req: google_cloud_longrunning::model::ListOperationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::ListOperationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SessionService::list_operations",
self.inner.list_operations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_operation(
&self,
req: google_cloud_longrunning::model::GetOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SessionService::get_operation",
self.inner.get_operation(req, options));
#[cfg(google_cloud_unstable_tracing)]
google_cloud_lro::record_polling_attributes!(&_span);
let result = pending.await;
#[cfg(google_cloud_unstable_tracing)]
{
if google_cloud_lro::LroRecorder::current().is_some() {
match &result {
Ok(response) => {
let op = response.body();
_span.record("gcp.longrunning.done", op.done);
if op.done {
let code = match &op.result {
Some(
google_cloud_longrunning::model::operation::Result::Error(
status,
),
) => status.code,
_ => 0,
};
_span.record("gcp.longrunning.status_code", code);
if let Some(
google_cloud_longrunning::model::operation::Result::Error(status),
) = &op.result
{
_span.record("otel.status_code", "ERROR");
_span.record("otel.status_description", &status.message);
_span.record("rpc.response.status_code", status.code);
_span.record(
"error.type",
google_cloud_gax::error::rpc::Code::from(status.code)
.to_string(),
);
}
}
}
Err(e) => {
_span.record("otel.status_code", "ERROR");
_span.record("otel.status_description", e.to_string());
}
}
}
}
result
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_operation(
&self,
req: google_cloud_longrunning::model::DeleteOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SessionService::delete_operation",
self.inner.delete_operation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn cancel_operation(
&self,
req: google_cloud_longrunning::model::CancelOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SessionService::cancel_operation",
self.inner.cancel_operation(req, options));
pending.await
}
}
#[derive(Clone, Debug)]
pub struct ToolService<T>
where
T: super::stub::ToolService + std::fmt::Debug + Send + Sync,
{
inner: T,
duration: gaxi::observability::DurationMetric,
}
impl<T> ToolService<T>
where
T: super::stub::ToolService + std::fmt::Debug + Send + Sync,
{
pub fn new(inner: T) -> Self {
Self {
inner,
duration: gaxi::observability::DurationMetric::new(&info::INSTRUMENTATION_CLIENT_INFO),
}
}
}
impl<T> super::stub::ToolService for ToolService<T>
where
T: super::stub::ToolService + std::fmt::Debug + Send + Sync,
{
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn execute_tool(
&self,
req: crate::model::ExecuteToolRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ExecuteToolResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ToolService::execute_tool",
self.inner.execute_tool(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn retrieve_tool_schema(
&self,
req: crate::model::RetrieveToolSchemaRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::RetrieveToolSchemaResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ToolService::retrieve_tool_schema",
self.inner.retrieve_tool_schema(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn retrieve_tools(
&self,
req: crate::model::RetrieveToolsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::RetrieveToolsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ToolService::retrieve_tools",
self.inner.retrieve_tools(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_locations(
&self,
req: google_cloud_location::model::ListLocationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::ListLocationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ToolService::list_locations",
self.inner.list_locations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_location(
&self,
req: google_cloud_location::model::GetLocationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::Location>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ToolService::get_location",
self.inner.get_location(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_operations(
&self,
req: google_cloud_longrunning::model::ListOperationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::ListOperationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ToolService::list_operations",
self.inner.list_operations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_operation(
&self,
req: google_cloud_longrunning::model::GetOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ToolService::get_operation",
self.inner.get_operation(req, options));
#[cfg(google_cloud_unstable_tracing)]
google_cloud_lro::record_polling_attributes!(&_span);
let result = pending.await;
#[cfg(google_cloud_unstable_tracing)]
{
if google_cloud_lro::LroRecorder::current().is_some() {
match &result {
Ok(response) => {
let op = response.body();
_span.record("gcp.longrunning.done", op.done);
if op.done {
let code = match &op.result {
Some(
google_cloud_longrunning::model::operation::Result::Error(
status,
),
) => status.code,
_ => 0,
};
_span.record("gcp.longrunning.status_code", code);
if let Some(
google_cloud_longrunning::model::operation::Result::Error(status),
) = &op.result
{
_span.record("otel.status_code", "ERROR");
_span.record("otel.status_description", &status.message);
_span.record("rpc.response.status_code", status.code);
_span.record(
"error.type",
google_cloud_gax::error::rpc::Code::from(status.code)
.to_string(),
);
}
}
}
Err(e) => {
_span.record("otel.status_code", "ERROR");
_span.record("otel.status_description", e.to_string());
}
}
}
}
result
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_operation(
&self,
req: google_cloud_longrunning::model::DeleteOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ToolService::delete_operation",
self.inner.delete_operation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn cancel_operation(
&self,
req: google_cloud_longrunning::model::CancelOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ToolService::cancel_operation",
self.inner.cancel_operation(req, options));
pending.await
}
}
#[derive(Clone, Debug)]
pub struct WidgetService<T>
where
T: super::stub::WidgetService + std::fmt::Debug + Send + Sync,
{
inner: T,
duration: gaxi::observability::DurationMetric,
}
impl<T> WidgetService<T>
where
T: super::stub::WidgetService + std::fmt::Debug + Send + Sync,
{
pub fn new(inner: T) -> Self {
Self {
inner,
duration: gaxi::observability::DurationMetric::new(&info::INSTRUMENTATION_CLIENT_INFO),
}
}
}
impl<T> super::stub::WidgetService for WidgetService<T>
where
T: super::stub::WidgetService + std::fmt::Debug + Send + Sync,
{
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn generate_chat_token(
&self,
req: crate::model::GenerateChatTokenRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::GenerateChatTokenResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::WidgetService::generate_chat_token",
self.inner.generate_chat_token(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_locations(
&self,
req: google_cloud_location::model::ListLocationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::ListLocationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::WidgetService::list_locations",
self.inner.list_locations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_location(
&self,
req: google_cloud_location::model::GetLocationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_location::model::Location>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::WidgetService::get_location",
self.inner.get_location(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_operations(
&self,
req: google_cloud_longrunning::model::ListOperationsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::ListOperationsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::WidgetService::list_operations",
self.inner.list_operations(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_operation(
&self,
req: google_cloud_longrunning::model::GetOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<google_cloud_longrunning::model::Operation>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::WidgetService::get_operation",
self.inner.get_operation(req, options));
#[cfg(google_cloud_unstable_tracing)]
google_cloud_lro::record_polling_attributes!(&_span);
let result = pending.await;
#[cfg(google_cloud_unstable_tracing)]
{
if google_cloud_lro::LroRecorder::current().is_some() {
match &result {
Ok(response) => {
let op = response.body();
_span.record("gcp.longrunning.done", op.done);
if op.done {
let code = match &op.result {
Some(
google_cloud_longrunning::model::operation::Result::Error(
status,
),
) => status.code,
_ => 0,
};
_span.record("gcp.longrunning.status_code", code);
if let Some(
google_cloud_longrunning::model::operation::Result::Error(status),
) = &op.result
{
_span.record("otel.status_code", "ERROR");
_span.record("otel.status_description", &status.message);
_span.record("rpc.response.status_code", status.code);
_span.record(
"error.type",
google_cloud_gax::error::rpc::Code::from(status.code)
.to_string(),
);
}
}
}
Err(e) => {
_span.record("otel.status_code", "ERROR");
_span.record("otel.status_description", e.to_string());
}
}
}
}
result
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn delete_operation(
&self,
req: google_cloud_longrunning::model::DeleteOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::WidgetService::delete_operation",
self.inner.delete_operation(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn cancel_operation(
&self,
req: google_cloud_longrunning::model::CancelOperationRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::WidgetService::cancel_operation",
self.inner.cancel_operation(req, options));
pending.await
}
}
pub(crate) mod info {
const NAME: &str = env!("CARGO_PKG_NAME");
const VERSION: &str = env!("CARGO_PKG_VERSION");
pub(crate) static INSTRUMENTATION_CLIENT_INFO: std::sync::LazyLock<
gaxi::options::InstrumentationClientInfo,
> = std::sync::LazyLock::new(|| {
let mut info = gaxi::options::InstrumentationClientInfo::default();
info.service_name = "ces";
info.client_version = VERSION;
info.client_artifact = NAME;
info.default_host = "ces";
info
});
}