#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Domain {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(map = "string, string", tag = "2")]
pub labels:
::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, repeated, tag = "3")]
pub authorized_networks: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag = "4")]
pub reserved_ip_range: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "5")]
pub locations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag = "6")]
pub admin: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub fqdn: ::prost::alloc::string::String,
#[prost(message, optional, tag = "11")]
pub create_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "12")]
pub update_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(enumeration = "domain::State", tag = "13")]
pub state: i32,
#[prost(string, tag = "14")]
pub status_message: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "15")]
pub trusts: ::prost::alloc::vec::Vec<Trust>,
}
pub mod domain {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum State {
Unspecified = 0,
Creating = 1,
Ready = 2,
Updating = 3,
Deleting = 4,
Repairing = 5,
PerformingMaintenance = 6,
Unavailable = 7,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Trust {
#[prost(string, tag = "1")]
pub target_domain_name: ::prost::alloc::string::String,
#[prost(enumeration = "trust::TrustType", tag = "2")]
pub trust_type: i32,
#[prost(enumeration = "trust::TrustDirection", tag = "3")]
pub trust_direction: i32,
#[prost(bool, tag = "4")]
pub selective_authentication: bool,
#[prost(string, repeated, tag = "5")]
pub target_dns_ip_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag = "6")]
pub trust_handshake_secret: ::prost::alloc::string::String,
#[prost(message, optional, tag = "7")]
pub create_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "8")]
pub update_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(enumeration = "trust::State", tag = "9")]
pub state: i32,
#[prost(string, tag = "11")]
pub state_description: ::prost::alloc::string::String,
#[prost(message, optional, tag = "12")]
pub last_trust_heartbeat_time: ::core::option::Option<::prost_types::Timestamp>,
}
pub mod trust {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum State {
Unspecified = 0,
Creating = 1,
Updating = 2,
Deleting = 3,
Connected = 4,
Disconnected = 5,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TrustType {
Unspecified = 0,
Forest = 1,
External = 2,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TrustDirection {
Unspecified = 0,
Inbound = 1,
Outbound = 2,
Bidirectional = 3,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OpMetadata {
#[prost(message, optional, tag = "1")]
pub create_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "2")]
pub end_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "3")]
pub target: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub verb: ::prost::alloc::string::String,
#[prost(bool, tag = "5")]
pub requested_cancellation: bool,
#[prost(string, tag = "6")]
pub api_version: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateMicrosoftAdDomainRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub domain_name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub domain: ::core::option::Option<Domain>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetAdminPasswordRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetAdminPasswordResponse {
#[prost(string, tag = "1")]
pub password: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListDomainsRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub filter: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub order_by: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListDomainsResponse {
#[prost(message, repeated, tag = "1")]
pub domains: ::prost::alloc::vec::Vec<Domain>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "3")]
pub unreachable: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetDomainRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateDomainRequest {
#[prost(message, optional, tag = "1")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
#[prost(message, optional, tag = "2")]
pub domain: ::core::option::Option<Domain>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteDomainRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AttachTrustRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub trust: ::core::option::Option<Trust>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReconfigureTrustRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub target_domain_name: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "3")]
pub target_dns_ip_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetachTrustRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub trust: ::core::option::Option<Trust>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ValidateTrustRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub trust: ::core::option::Option<Trust>,
}
#[doc = r" Generated client implementations."]
pub mod managed_identities_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[doc = " API Overview"]
#[doc = ""]
#[doc = " The `managedidentites.googleapis.com` service implements the Google Cloud"]
#[doc = " Managed Identites API for identity services"]
#[doc = " (e.g. Microsoft Active Directory)."]
#[doc = ""]
#[doc = " The Managed Identities service provides methods to manage"]
#[doc = " (create/read/update/delete) domains, reset managed identities admin password,"]
#[doc = " add/remove domain controllers in GCP regions and add/remove VPC peering."]
#[doc = ""]
#[doc = " Data Model"]
#[doc = ""]
#[doc = " The Managed Identities service exposes the following resources:"]
#[doc = ""]
#[doc = " * Locations as global, named as follows:"]
#[doc = " `projects/{project_id}/locations/global`."]
#[doc = ""]
#[doc = " * Domains, named as follows:"]
#[doc = " `/projects/{project_id}/locations/global/domain/{domain_name}`."]
#[doc = ""]
#[doc = " The `{domain_name}` refers to fully qualified domain name in the customer"]
#[doc = " project e.g. mydomain.myorganization.com, with the following restrictions:"]
#[doc = ""]
#[doc = " * Must contain only lowercase letters, numbers, periods and hyphens."]
#[doc = " * Must start with a letter."]
#[doc = " * Must contain between 2-64 characters."]
#[doc = " * Must end with a number or a letter."]
#[doc = " * Must not start with period."]
#[doc = " * First segement length (mydomain form example above) shouldn't exceed"]
#[doc = " 15 chars."]
#[doc = " * The last segment cannot be fully numeric."]
#[doc = " * Must be unique within the customer project."]
#[derive(Debug, Clone)]
pub struct ManagedIdentitiesServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> ManagedIdentitiesServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::ResponseBody: Body + Send + 'static,
T::Error: Into<StdError>,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> ManagedIdentitiesServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
Into<StdError> + Send + Sync,
{
ManagedIdentitiesServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[doc = r" Compress requests with `gzip`."]
#[doc = r""]
#[doc = r" This requires the server to support it otherwise it might respond with an"]
#[doc = r" error."]
pub fn send_gzip(mut self) -> Self {
self.inner = self.inner.send_gzip();
self
}
#[doc = r" Enable decompressing responses with `gzip`."]
pub fn accept_gzip(mut self) -> Self {
self.inner = self.inner.accept_gzip();
self
}
#[doc = " Creates a Microsoft AD domain."]
pub async fn create_microsoft_ad_domain(
&mut self,
request: impl tonic::IntoRequest<super::CreateMicrosoftAdDomainRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http :: uri :: PathAndQuery :: from_static ("/google.cloud.managedidentities.v1.ManagedIdentitiesService/CreateMicrosoftAdDomain") ;
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Resets a domain's administrator password."]
pub async fn reset_admin_password(
&mut self,
request: impl tonic::IntoRequest<super::ResetAdminPasswordRequest>,
) -> Result<tonic::Response<super::ResetAdminPasswordResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.managedidentities.v1.ManagedIdentitiesService/ResetAdminPassword",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists domains in a project."]
pub async fn list_domains(
&mut self,
request: impl tonic::IntoRequest<super::ListDomainsRequest>,
) -> Result<tonic::Response<super::ListDomainsResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.managedidentities.v1.ManagedIdentitiesService/ListDomains",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Gets information about a domain."]
pub async fn get_domain(
&mut self,
request: impl tonic::IntoRequest<super::GetDomainRequest>,
) -> Result<tonic::Response<super::Domain>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.managedidentities.v1.ManagedIdentitiesService/GetDomain",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates the metadata and configuration of a domain."]
pub async fn update_domain(
&mut self,
request: impl tonic::IntoRequest<super::UpdateDomainRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.managedidentities.v1.ManagedIdentitiesService/UpdateDomain",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Deletes a domain."]
pub async fn delete_domain(
&mut self,
request: impl tonic::IntoRequest<super::DeleteDomainRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.managedidentities.v1.ManagedIdentitiesService/DeleteDomain",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Adds an AD trust to a domain."]
pub async fn attach_trust(
&mut self,
request: impl tonic::IntoRequest<super::AttachTrustRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.managedidentities.v1.ManagedIdentitiesService/AttachTrust",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates the DNS conditional forwarder."]
pub async fn reconfigure_trust(
&mut self,
request: impl tonic::IntoRequest<super::ReconfigureTrustRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.managedidentities.v1.ManagedIdentitiesService/ReconfigureTrust",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Removes an AD trust."]
pub async fn detach_trust(
&mut self,
request: impl tonic::IntoRequest<super::DetachTrustRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.managedidentities.v1.ManagedIdentitiesService/DetachTrust",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Validates a trust state, that the target domain is reachable, and that the"]
#[doc = " target domain is able to accept incoming trust requests."]
pub async fn validate_trust(
&mut self,
request: impl tonic::IntoRequest<super::ValidateTrustRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.managedidentities.v1.ManagedIdentitiesService/ValidateTrust",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}