gcp_sdk_iam_v1/
builders.rsuse crate::Result;
use std::sync::Arc;
#[derive(Clone, Debug)]
pub struct IAMPolicyRequestBuilder<R: std::default::Default> {
stub: Arc<dyn crate::traits::dyntraits::IAMPolicy>,
request: R,
options: gax::options::RequestOptions,
}
impl<R> IAMPolicyRequestBuilder<R>
where
R: std::default::Default,
{
pub(crate) fn new(stub: Arc<dyn crate::traits::dyntraits::IAMPolicy>) -> Self {
Self {
stub,
request: R::default(),
options: gax::options::RequestOptions::default(),
}
}
}
#[derive(Clone, Debug)]
pub struct SetIamPolicy(IAMPolicyRequestBuilder<crate::model::SetIamPolicyRequest>);
impl SetIamPolicy {
pub(crate) fn new(stub: Arc<dyn crate::traits::dyntraits::IAMPolicy>) -> Self {
Self(IAMPolicyRequestBuilder::new(stub))
}
pub fn with_request<V: Into<crate::model::SetIamPolicyRequest>>(mut self, v: V) -> Self {
self.0.request = v.into();
self
}
pub async fn send(self) -> Result<crate::model::Policy> {
self.0
.stub
.set_iam_policy(self.0.request, self.0.options)
.await
}
pub fn set_resource<T: Into<String>>(mut self, v: T) -> Self {
self.0.request.resource = v.into();
self
}
pub fn set_policy<T: Into<Option<crate::model::Policy>>>(mut self, v: T) -> Self {
self.0.request.policy = v.into();
self
}
pub fn set_update_mask<T: Into<Option<wkt::FieldMask>>>(mut self, v: T) -> Self {
self.0.request.update_mask = v.into();
self
}
}
impl gax::options::RequestBuilder for SetIamPolicy {
fn request_options(&mut self) -> &mut gax::options::RequestOptions {
&mut self.0.options
}
}
#[derive(Clone, Debug)]
pub struct GetIamPolicy(IAMPolicyRequestBuilder<crate::model::GetIamPolicyRequest>);
impl GetIamPolicy {
pub(crate) fn new(stub: Arc<dyn crate::traits::dyntraits::IAMPolicy>) -> Self {
Self(IAMPolicyRequestBuilder::new(stub))
}
pub fn with_request<V: Into<crate::model::GetIamPolicyRequest>>(mut self, v: V) -> Self {
self.0.request = v.into();
self
}
pub async fn send(self) -> Result<crate::model::Policy> {
self.0
.stub
.get_iam_policy(self.0.request, self.0.options)
.await
}
pub fn set_resource<T: Into<String>>(mut self, v: T) -> Self {
self.0.request.resource = v.into();
self
}
pub fn set_options<T: Into<Option<crate::model::GetPolicyOptions>>>(mut self, v: T) -> Self {
self.0.request.options = v.into();
self
}
}
impl gax::options::RequestBuilder for GetIamPolicy {
fn request_options(&mut self) -> &mut gax::options::RequestOptions {
&mut self.0.options
}
}
#[derive(Clone, Debug)]
pub struct TestIamPermissions(IAMPolicyRequestBuilder<crate::model::TestIamPermissionsRequest>);
impl TestIamPermissions {
pub(crate) fn new(stub: Arc<dyn crate::traits::dyntraits::IAMPolicy>) -> Self {
Self(IAMPolicyRequestBuilder::new(stub))
}
pub fn with_request<V: Into<crate::model::TestIamPermissionsRequest>>(mut self, v: V) -> Self {
self.0.request = v.into();
self
}
pub async fn send(self) -> Result<crate::model::TestIamPermissionsResponse> {
self.0
.stub
.test_iam_permissions(self.0.request, self.0.options)
.await
}
pub fn set_resource<T: Into<String>>(mut self, v: T) -> Self {
self.0.request.resource = v.into();
self
}
pub fn set_permissions<T: Into<Vec<String>>>(mut self, v: T) -> Self {
self.0.request.permissions = v.into();
self
}
}
impl gax::options::RequestBuilder for TestIamPermissions {
fn request_options(&mut self) -> &mut gax::options::RequestOptions {
&mut self.0.options
}
}