Crates.io | google-cloud-kms |
lib.rs | google-cloud-kms |
version | 0.1.0 |
source | src |
created_at | 2024-05-07 13:28:58.48637 |
updated_at | 2024-05-07 13:28:58.48637 |
description | Google Cloud Platform Key Management Service client library. |
homepage | |
repository | https://github.com/yoshidan/google-cloud-rust/tree/main/kms |
max_upload_size | |
id | 1232176 |
size | 29,624 |
Google Cloud Platform Key Management Service Client library.
[dependencies]
google-cloud-kms = "version"
There are two ways to create a client that is authenticated against the google cloud.
The function with_auth()
will try and read the credentials from a file specified in the environment variable GOOGLE_APPLICATION_CREDENTIALS
, GOOGLE_APPLICATION_CREDENTIALS_JSON
or
from a metadata server.
This is also described in google-cloud-auth
use google_cloud_kms::client::{Client, ClientConfig};
async fn run() {
let config = ClientConfig::default().with_auth().await.unwrap();
let client = Client::new(config);
}
When you can't use the gcloud
authentication but you have a different way to get your credentials (e.g a different environment variable)
you can parse your own version of the 'credentials-file' and use it like that:
use google_cloud_auth::credentials::CredentialsFile;
// or google_cloud_kms::client::google_cloud_auth::credentials::CredentialsFile
use google_cloud_kms::client::{Client, ClientConfig};
async fn run(cred: CredentialsFile) {
let config = ClientConfig::default().with_credentials(cred).await.unwrap();
let client = Client::new(config);
}
use std::collections::HashMap;
use prost_types::FieldMask;
use google_cloud_googleapis::cloud::kms::v1::{CreateKeyRingRequest, GetKeyRingRequest, ListKeyRingsRequest};
use google_cloud_kms::client::{Client, ClientConfig};
async fn run(config: ClientConfig) {
// Create client
let mut client = Client::new(config).await.unwrap();
// Key ring
// create
match client
.create_key_ring(
CreateKeyRingRequest {
parent: "projects/qovery-gcp-tests/locations/europe-west9".to_string(),
key_ring_id: "123-456".to_string(),
key_ring: None,
},
None,
)
.await
{
Ok(mut r) => println!("Created key ring {:?}", r),
Err(err) => panic!("err: {:?}", err),
};
// list
match client
.list_key_rings(
ListKeyRingsRequest {
parent: "projects/qovery-gcp-tests/locations/europe-west9".to_string(),
page_size: 5,
page_token: "".to_string(),
filter: "".to_string(),
order_by: "".to_string(),
},
None,
)
.await
{
Ok(response) => {
println!("List key rings");
for r in response.key_rings {
println!("- {:?}", r);
}
}
Err(err) => panic!("err: {:?}", err),
};
// get
match client
.get_key_ring(
GetKeyRingRequest {
name: "projects/qovery-gcp-tests/locations/europe-west9/keyRings/key-ring-for-documentation"
.to_string(),
},
None,
)
.await
{
Ok(response) => {
println!("Get keyring: {:?}", response);
}
Err(err) => panic!("err: {:?}", err),
}