pub struct ServiceController { /* private fields */ }Expand description
Implements a client for the Service Control API.
§Service Description
Lets clients check and report operations against a managed service.
§Configuration
ServiceController has various configuration parameters, the defaults should
work with most applications.
§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 async fn new_with_config(conf: ClientConfig) -> Result<Self>
pub async fn new_with_config(conf: ClientConfig) -> Result<Self>
Creates a new client with the specified configuration.
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 when mocking the client.
Sourcepub fn check(&self, service_name: impl Into<String>) -> Check
pub fn check(&self, service_name: impl Into<String>) -> 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, service_name: impl Into<String>) -> Report
pub fn report(&self, service_name: impl Into<String>) -> 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