use super::*; /// A builder providing access to all methods supported on *service* resources. /// It is not used directly, but through the [`ServiceControl`] hub. /// /// # Example /// /// Instantiate a resource builder /// /// ```test_harness,no_run /// extern crate hyper; /// extern crate hyper_rustls; /// extern crate google_servicecontrol2 as servicecontrol2; /// /// # async fn dox() { /// use std::default::Default; /// use servicecontrol2::{ServiceControl, oauth2, hyper, hyper_rustls, chrono, FieldMask}; /// /// let secret: oauth2::ApplicationSecret = Default::default(); /// let auth = oauth2::InstalledFlowAuthenticator::builder( /// secret, /// oauth2::InstalledFlowReturnMethod::HTTPRedirect, /// ).build().await.unwrap(); /// let mut hub = ServiceControl::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().build()), auth); /// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders* /// // like `check(...)` and `report(...)` /// // to build up your call. /// let rb = hub.services(); /// # } /// ``` pub struct ServiceMethods<'a, S> where S: 'a { pub(super) hub: &'a ServiceControl, } impl<'a, S> client::MethodsBuilder for ServiceMethods<'a, S> {} impl<'a, S> ServiceMethods<'a, S> { /// Create a builder to help you perform the following task: /// /// Private Preview. This feature is only available for approved services. This method provides admission control for services that are integrated with [Service Infrastructure](https://cloud.google.com/service-infrastructure). It checks whether an operation should be allowed based on the service configuration and relevant policies. It must be called before the operation is executed. For more information, see [Admission Control](https://cloud.google.com/service-infrastructure/docs/admission-control). NOTE: The admission control has an expected policy propagation delay of 60s. The caller **must** not depend on the most recent policy changes. NOTE: The admission control has a hard limit of 1 referenced resources per call. If an operation refers to more than 1 resources, the caller must call the Check method multiple times. This method requires the `servicemanagement.services.check` permission on the specified service. For more information, see [Service Control API Access Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control). /// /// # Arguments /// /// * `request` - No description provided. /// * `serviceName` - The service name as specified in its service configuration. For example, `"pubsub.googleapis.com"`. See [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) for the definition of a service name. pub fn check(&self, request: CheckRequest, service_name: &str) -> ServiceCheckCall<'a, S> { ServiceCheckCall { hub: self.hub, _request: request, _service_name: service_name.to_string(), _delegate: Default::default(), _additional_params: Default::default(), _scopes: Default::default(), } } /// Create a builder to help you perform the following task: /// /// Private Preview. This feature is only available for approved services. This method provides telemetry reporting for services that are integrated with [Service Infrastructure](https://cloud.google.com/service-infrastructure). It reports a list of operations that have occurred on a service. It must be called after the operations have been executed. For more information, see [Telemetry Reporting](https://cloud.google.com/service-infrastructure/docs/telemetry-reporting). NOTE: The telemetry reporting has a hard limit of 1000 operations and 1MB per Report call. It is recommended to have no more than 100 operations per call. This method requires the `servicemanagement.services.report` permission on the specified service. For more information, see [Service Control API Access Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control). /// /// # Arguments /// /// * `request` - No description provided. /// * `serviceName` - The service name as specified in its service configuration. For example, `"pubsub.googleapis.com"`. See [google.api.Service](https://cloud.google.com/service-management/reference/rpc/google.api#google.api.Service) for the definition of a service name. pub fn report(&self, request: ReportRequest, service_name: &str) -> ServiceReportCall<'a, S> { ServiceReportCall { hub: self.hub, _request: request, _service_name: service_name.to_string(), _delegate: Default::default(), _additional_params: Default::default(), _scopes: Default::default(), } } }