use crate::Result;
#[derive(Clone, Debug)]
pub struct SpacesService<T>
where
T: super::stub::SpacesService + std::fmt::Debug + Send + Sync,
{
inner: T,
duration: gaxi::observability::DurationMetric,
}
impl<T> SpacesService<T>
where
T: super::stub::SpacesService + 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::SpacesService for SpacesService<T>
where
T: super::stub::SpacesService + std::fmt::Debug + Send + Sync,
{
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn create_space(
&self,
req: crate::model::CreateSpaceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Space>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SpacesService::create_space",
self.inner.create_space(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_space(
&self,
req: crate::model::GetSpaceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Space>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SpacesService::get_space",
self.inner.get_space(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn update_space(
&self,
req: crate::model::UpdateSpaceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Space>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SpacesService::update_space",
self.inner.update_space(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn end_active_conference(
&self,
req: crate::model::EndActiveConferenceRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<()>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::SpacesService::end_active_conference",
self.inner.end_active_conference(req, options));
pending.await
}
}
#[derive(Clone, Debug)]
pub struct ConferenceRecordsService<T>
where
T: super::stub::ConferenceRecordsService + std::fmt::Debug + Send + Sync,
{
inner: T,
duration: gaxi::observability::DurationMetric,
}
impl<T> ConferenceRecordsService<T>
where
T: super::stub::ConferenceRecordsService + 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::ConferenceRecordsService for ConferenceRecordsService<T>
where
T: super::stub::ConferenceRecordsService + std::fmt::Debug + Send + Sync,
{
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_conference_record(
&self,
req: crate::model::GetConferenceRecordRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ConferenceRecord>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::get_conference_record",
self.inner.get_conference_record(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_conference_records(
&self,
req: crate::model::ListConferenceRecordsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListConferenceRecordsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::list_conference_records",
self.inner.list_conference_records(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_participant(
&self,
req: crate::model::GetParticipantRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Participant>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::get_participant",
self.inner.get_participant(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_participants(
&self,
req: crate::model::ListParticipantsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListParticipantsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::list_participants",
self.inner.list_participants(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_participant_session(
&self,
req: crate::model::GetParticipantSessionRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ParticipantSession>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::get_participant_session",
self.inner.get_participant_session(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_participant_sessions(
&self,
req: crate::model::ListParticipantSessionsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListParticipantSessionsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::list_participant_sessions",
self.inner.list_participant_sessions(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_recording(
&self,
req: crate::model::GetRecordingRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Recording>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::get_recording",
self.inner.get_recording(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_recordings(
&self,
req: crate::model::ListRecordingsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListRecordingsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::list_recordings",
self.inner.list_recordings(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_transcript(
&self,
req: crate::model::GetTranscriptRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::Transcript>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::get_transcript",
self.inner.get_transcript(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_transcripts(
&self,
req: crate::model::ListTranscriptsRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListTranscriptsResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::list_transcripts",
self.inner.list_transcripts(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn get_transcript_entry(
&self,
req: crate::model::GetTranscriptEntryRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::TranscriptEntry>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::get_transcript_entry",
self.inner.get_transcript_entry(req, options));
pending.await
}
#[tracing::instrument(level = tracing::Level::DEBUG, ret)]
async fn list_transcript_entries(
&self,
req: crate::model::ListTranscriptEntriesRequest,
options: crate::RequestOptions,
) -> Result<crate::Response<crate::model::ListTranscriptEntriesResponse>> {
let (_span, pending) = gaxi::client_request_signals!(
metric: self.duration.clone(),
info: *info::INSTRUMENTATION_CLIENT_INFO,
method: "client::ConferenceRecordsService::list_transcript_entries",
self.inner.list_transcript_entries(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 = "meet";
info.client_version = VERSION;
info.client_artifact = NAME;
info.default_host = "meet";
info
});
}