pub struct Builder { /* private fields */ }Expand description
A builder for constructing service account Credentials instances.
§Example
let key = serde_json::json!({
"client_email": "test-client-email",
"private_key_id": "test-private-key-id",
"private_key": "<YOUR_PKCS8_PEM_KEY_HERE>",
"project_id": "test-project-id",
"universe_domain": "test-universe-domain",
});
let credentials = Builder::new(key)
.with_access_specifier(AccessSpecifier::from_audience("https://pubsub.googleapis.com"))
.build();
})Implementations§
Source§impl Builder
impl Builder
Sourcepub fn new(service_account_key: Value) -> Self
pub fn new(service_account_key: Value) -> Self
Creates a new builder using service_account_key JSON value. By default, the builder is configured with cloud-platform scope. This can be overridden using the with_access_specifier method.
Sourcepub fn with_access_specifier(self, access_specifier: AccessSpecifier) -> Self
pub fn with_access_specifier(self, access_specifier: AccessSpecifier) -> Self
Sets the AccessSpecifier representing either scopes or audience for this credentials.
§Example for setting audience
let access_specifier = AccessSpecifier::from_audience("https://bigtable.googleapis.com/");
let service_account_key = serde_json::json!({ /* add details here */ });
let credentials = Builder::new(service_account_key)
.with_access_specifier(access_specifier)
.build();§Example for setting scopes
let access_specifier = AccessSpecifier::from_scopes(["https://www.googleapis.com/auth/pubsub"]);
let service_account_key = serde_json::json!({ /* add details here */ });
let credentials = Builder::new(service_account_key)
.with_access_specifier(access_specifier)
.build();Sourcepub fn with_quota_project_id<S: Into<String>>(self, quota_project_id: S) -> Self
pub fn with_quota_project_id<S: Into<String>>(self, quota_project_id: S) -> Self
Sets the quota project for this credentials.
In some services, you can use a service account in
one project for authentication and authorization, and charge
the usage to a different project. This requires that the
service account has serviceusage.services.use permissions on the quota project.
Sourcepub fn build(self) -> Result<Credentials, Error>
pub fn build(self) -> Result<Credentials, Error>
Returns a Credentials instance with the configured settings.
§Errors
Returns a CredentialsError if the service_account_key
provided to Builder::new cannot be successfully deserialized into the
expected format for a service account key. This typically happens if the
JSON value is malformed or missing required fields. For more information,
on the expected format for a service account key, consult the
relevant section in the [service account keys] guide.