# Azure App Configuration client for Rust [![Build Status](https://travis-ci.org/CarlosLanderas/azure-app-configuration.svg?branch=master)](https://travis-ci.org/CarlosLanderas/azure-app-configuration) [![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](https://github.com/CarlosLanderas/azure-app-configuration) [![Cargo](https://img.shields.io/crates/v/azure-app-configuration.svg)](https://crates.io/crates/azure-app-configuration) [![Documentation](https://docs.rs/azure-app-configuration/badge.svg)](https://docs.rs/azure-app-configuration) With **azure-app-configuration** you can easily work with your Azure App Configuration service centralized configurations. Latest version supports: - List keys - List labels - List key values - Get key value - Set key value (with label, tags and content type) - Remove key value ## Running samples You can find some sample code snippets here: **[examples](https://github.com/CarlosLanderas/azure-app-configuration/tree/master/examples)**. Just replace the configuration with your Azure configuration endpoint, your access_key and secret and execute them by using: `cargo run --example list-key-values` `cargo run --example get_key_value` `cargo run --example set_key_value` You can see all available targets in **[Cargo.toml](https://github.com/CarlosLanderas/azure-app-configuration/blob/master/Cargo.toml#L25-L42)** file ## Code samples ### Create an AzureAppConfiguration client To create an Azure App Configuration client just use ::new method and provide the endpoint url, the access key and the secret: ```rust use azure_app_configuration::client::AzureAppConfigClient; let app_config_client = AzureAppConfigClient::new( "https://endpoint.azconfig.io", "0-l9-s0:Z6DMwn2DoiK2gVsTIm7h", "wgf9BDWeh/+Dtq8Dmps3SUpwrdgYLrXG8svE+VyM06w=", ); ``` ### List keys ```rust //List all key values without a label (all key values); let keys = app_config_client.list_keys().await.unwrap(); for k in keys.items { println!("{:?}", k); } ``` ### List labels ```rust let labels = app_config_client.list_labels().await.unwrap(); for l in labels.items { println!("{:?}", l); } ``` ### List Key Values ```rust let key_values = app_config_client.list_key_values(SearchLabel::All).await; for k in key_values { println!("{:?}", k); } ``` ### Get Key value with label Retrieve value for key ConnectionString using label ContosoApp ```rust let kv = app_config_client .get_key_value("ConnectionString", SearchLabel::For("ContosoApp")) .await; println!("{:?}", kv); ``` ### Get Key value without label Retrieve a label called ConnectionString with no label specified ```rust let kv = app_config_client .get_key_value("ConnectionString", SearchLabel::All) .await; println!("{:?}", kv); ``` ### Set key value Delete ConnectionString key for Application1 label ```rust let kv = app_config_client .set_key( "ConnectionString", "Server=dummy;user id=user;password=fakepass", SearchLabel::For("Application1"), None, None, ) .await; println!("{:?}", kv); ``` ### Set key value with tags and content type ```rust let mut tags = HashMap::new(); tags.insert("tag1", "tagvalue1"); tags.insert("tag2", "tagvalue2"); let kv = app_config_client .set_key( "UseCache", "true", SearchLabel::For("PublicWebsite"), Some(tags), Some("application/lande"), ) .await; println!("{:?}", kv); ```