pub struct ServiceController { /* private fields */ }
Expand description
Implements a client for the Service Control API.
§Example
let client = ServiceController::builder().build().await?;
// use `client` to make requests to the Service Control API.
§Service Description
Lets clients check and report operations against a managed service.
§Configuration
To configure ServiceController
use the with_*
methods in the type returned
by builder(). The default configuration should
work for most applications. Common configuration changes include
- with_endpoint(): by default this client uses the global default endpoint
(
https://servicecontrol.googleapis.com
). Applications using regional endpoints or running in restricted networks (e.g. a network configured override this default. - with_credentials(): by default this client uses Application Default Credentials. Applications using custom authentication may need to override this default.
§Pooling and Cloning
ServiceController
holds a connection pool internally, it is advised to
create one and the reuse it. You do not need to wrap ServiceController
in
an Rc or Arc to reuse it, because it
already uses an Arc
internally.
Implementations§
Source§impl ServiceController
impl ServiceController
Sourcepub fn builder() -> ClientBuilder
pub fn builder() -> ClientBuilder
Returns a builder for ServiceController.
let client = ServiceController::builder().build().await?;
Sourcepub fn from_stub<T>(stub: T) -> Selfwhere
T: ServiceController + 'static,
pub fn from_stub<T>(stub: T) -> Selfwhere
T: ServiceController + 'static,
Creates a new client from the provided stub.
The most common case for calling this function is in tests mocking the client’s behavior.
Sourcepub fn check(&self) -> Check
pub fn check(&self) -> Check
Checks whether an operation on a service should be allowed to proceed based on the configuration of the service and related policies. It must be called before the operation is executed.
If feasible, the client should cache the check results and reuse them for
60 seconds. In case of any server errors, the client should rely on the
cached results for much longer time to avoid outage.
WARNING: There is general 60s delay for the configuration and policy
propagation, therefore callers MUST NOT depend on the Check
method having
the latest policy information.
NOTE: the CheckRequest has the size limit (wire-format byte size) of 1MB.
This method requires the servicemanagement.services.check
permission
on the specified service. For more information, see
Cloud IAM.
Sourcepub fn report(&self) -> Report
pub fn report(&self) -> Report
Reports operation results to Google Service Control, such as logs and metrics. It should be called after an operation is completed.
If feasible, the client should aggregate reporting data for up to 5 seconds to reduce API traffic. Limiting aggregation to 5 seconds is to reduce data loss during client crashes. Clients should carefully choose the aggregation time window to avoid data loss risk more than 0.01% for business and compliance reasons.
NOTE: the ReportRequest has the size limit (wire-format byte size) of 1MB.
This method requires the servicemanagement.services.report
permission
on the specified service. For more information, see
Google Cloud IAM.
Trait Implementations§
Source§impl Clone for ServiceController
impl Clone for ServiceController
Source§fn clone(&self) -> ServiceController
fn clone(&self) -> ServiceController
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more