[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-azure-appconfiguration-java":3,"mdc-xp4l5z-key":42,"related-org-microsoft-azure-appconfiguration-java":2961,"related-repo-microsoft-azure-appconfiguration-java":3143},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":37,"sourceUrl":40,"mdContent":41},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Azure","azure","tag",{"name":17,"slug":18,"type":15},"Configuration","configuration",{"name":20,"slug":21,"type":15},"Java","java",{"name":23,"slug":24,"type":15},"Feature Flags","feature-flags",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:01.278468","MIT",315,[31,32,14,33,34,35,36],"agent-skills","agents","foundry","mcp","sdk","skills",{"repoUrl":26,"stars":25,"forks":29,"topics":38,"description":39},[31,32,14,33,34,35,36],"Skills, MCP servers, Custom Agents, Agents.md for SDKs to ground Coding Agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Ftree\u002FHEAD\u002F.github\u002Fplugins\u002Fazure-sdk-java\u002Fskills\u002Fazure-appconfiguration-java","---\nname: azure-appconfiguration-java\ndescription: |\n  Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\n  Triggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.0.0\"\n  package: com.azure:azure-data-appconfiguration\n---\n\n# Azure App Configuration SDK for Java\n\nClient library for Azure App Configuration, a managed service for centralizing application configurations.\n\n## Installation\n\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.azure\u003C\u002FgroupId>\n    \u003CartifactId>azure-data-appconfiguration\u003C\u002FartifactId>\n    \u003Cversion>1.8.0\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\nOr use Azure SDK BOM:\n\n```xml\n\u003CdependencyManagement>\n    \u003Cdependencies>\n        \u003Cdependency>\n            \u003CgroupId>com.azure\u003C\u002FgroupId>\n            \u003CartifactId>azure-sdk-bom\u003C\u002FartifactId>\n            \u003Cversion>{bom_version}\u003C\u002Fversion>\n            \u003Ctype>pom\u003C\u002Ftype>\n            \u003Cscope>import\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n    \u003C\u002Fdependencies>\n\u003C\u002FdependencyManagement>\n\n\u003Cdependencies>\n    \u003Cdependency>\n        \u003CgroupId>com.azure\u003C\u002FgroupId>\n        \u003CartifactId>azure-data-appconfiguration\u003C\u002FartifactId>\n    \u003C\u002Fdependency>\n\u003C\u002Fdependencies>\n```\n\n## Prerequisites\n\n- Azure App Configuration store\n- Connection string or Entra ID credentials\n\n## Environment Variables\n\n```bash\nAZURE_APPCONFIG_CONNECTION_STRING=Endpoint=https:\u002F\u002F\u003Cstore>.azconfig.io;Id=\u003Cid>;Secret=\u003Csecret>  # Alternative to Entra ID auth\nAZURE_APPCONFIG_ENDPOINT=https:\u002F\u002F\u003Cstore>.azconfig.io  # Required for all auth methods\nAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production\n```\n\n## Client Creation\n\n### With Connection String\n\n```java\nimport com.azure.data.appconfiguration.ConfigurationClient;\nimport com.azure.data.appconfiguration.ConfigurationClientBuilder;\n\nConfigurationClient configClient = new ConfigurationClientBuilder()\n    .connectionString(System.getenv(\"AZURE_APPCONFIG_CONNECTION_STRING\"))\n    .buildClient();\n```\n\n### Async Client\n\n```java\nimport com.azure.data.appconfiguration.ConfigurationAsyncClient;\n\nConfigurationAsyncClient asyncClient = new ConfigurationClientBuilder()\n    .connectionString(connectionString)\n    .buildAsyncClient();\n```\n\n### With Entra ID (Recommended)\n\n```java\nimport com.azure.core.credential.TokenCredential;\nimport com.azure.identity.AzureIdentityEnvVars;\nimport com.azure.identity.DefaultAzureCredentialBuilder;\nimport com.azure.identity.ManagedIdentityCredentialBuilder;\n\n\u002F\u002F Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=\u003Cspecific_credential>\nTokenCredential credential = new DefaultAzureCredentialBuilder()\n    .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)\n    .build();\n\u002F\u002F Or use a specific credential directly in production:\n\u002F\u002F See https:\u002F\u002Flearn.microsoft.com\u002Fjava\u002Fapi\u002Foverview\u002Fazure\u002Fidentity-readme?view=azure-java-stable#credential-classes\n\u002F\u002F TokenCredential credential = new ManagedIdentityCredentialBuilder().build();\n\nConfigurationClient configClient = new ConfigurationClientBuilder()\n    .credential(credential)\n    .endpoint(System.getenv(\"AZURE_APPCONFIG_ENDPOINT\"))\n    .buildClient();\n```\n\n## Key Concepts\n\n| Concept | Description |\n|---------|-------------|\n| Configuration Setting | Key-value pair with optional label |\n| Label | Dimension for separating settings (e.g., environments) |\n| Feature Flag | Special setting for feature management |\n| Secret Reference | Setting pointing to Key Vault secret |\n| Snapshot | Point-in-time immutable view of settings |\n\n## Configuration Setting Operations\n\n### Create Setting (Add)\n\nCreates only if setting doesn't exist:\n\n```java\nimport com.azure.data.appconfiguration.models.ConfigurationSetting;\n\nConfigurationSetting setting = configClient.addConfigurationSetting(\n    \"app\u002Fdatabase\u002Fconnection\", \n    \"Production\", \n    \"Server=prod.db.com;Database=myapp\"\n);\n```\n\n### Create or Update Setting (Set)\n\nCreates or overwrites:\n\n```java\nConfigurationSetting setting = configClient.setConfigurationSetting(\n    \"app\u002Fcache\u002Fenabled\", \n    \"Production\", \n    \"true\"\n);\n```\n\n### Get Setting\n\n```java\nConfigurationSetting setting = configClient.getConfigurationSetting(\n    \"app\u002Fdatabase\u002Fconnection\", \n    \"Production\"\n);\nSystem.out.println(\"Value: \" + setting.getValue());\nSystem.out.println(\"Content-Type: \" + setting.getContentType());\nSystem.out.println(\"Last Modified: \" + setting.getLastModified());\n```\n\n### Conditional Get (If Changed)\n\n```java\nimport com.azure.core.http.rest.Response;\nimport com.azure.core.util.Context;\n\nResponse\u003CConfigurationSetting> response = configClient.getConfigurationSettingWithResponse(\n    setting,      \u002F\u002F Setting with ETag\n    null,         \u002F\u002F Accept datetime\n    true,         \u002F\u002F ifChanged - only fetch if modified\n    Context.NONE\n);\n\nif (response.getStatusCode() == 304) {\n    System.out.println(\"Setting not modified\");\n} else {\n    ConfigurationSetting updated = response.getValue();\n}\n```\n\n### Update Setting\n\n```java\nConfigurationSetting updated = configClient.setConfigurationSetting(\n    \"app\u002Fcache\u002Fenabled\", \n    \"Production\", \n    \"false\"\n);\n```\n\n### Conditional Update (If Unchanged)\n\n```java\n\u002F\u002F Only update if ETag matches (no concurrent modifications)\nResponse\u003CConfigurationSetting> response = configClient.setConfigurationSettingWithResponse(\n    setting,     \u002F\u002F Setting with current ETag\n    true,        \u002F\u002F ifUnchanged\n    Context.NONE\n);\n```\n\n### Delete Setting\n\n```java\nConfigurationSetting deleted = configClient.deleteConfigurationSetting(\n    \"app\u002Fcache\u002Fenabled\", \n    \"Production\"\n);\n```\n\n### Conditional Delete\n\n```java\nResponse\u003CConfigurationSetting> response = configClient.deleteConfigurationSettingWithResponse(\n    setting,     \u002F\u002F Setting with ETag\n    true,        \u002F\u002F ifUnchanged\n    Context.NONE\n);\n```\n\n## List and Filter Settings\n\n### List by Key Pattern\n\n```java\nimport com.azure.data.appconfiguration.models.SettingSelector;\nimport com.azure.core.http.rest.PagedIterable;\n\nSettingSelector selector = new SettingSelector()\n    .setKeyFilter(\"app\u002F*\");\n\nPagedIterable\u003CConfigurationSetting> settings = configClient.listConfigurationSettings(selector);\nfor (ConfigurationSetting s : settings) {\n    System.out.println(s.getKey() + \" = \" + s.getValue());\n}\n```\n\n### List by Label\n\n```java\nSettingSelector selector = new SettingSelector()\n    .setKeyFilter(\"*\")\n    .setLabelFilter(\"Production\");\n\nPagedIterable\u003CConfigurationSetting> settings = configClient.listConfigurationSettings(selector);\n```\n\n### List by Multiple Keys\n\n```java\nSettingSelector selector = new SettingSelector()\n    .setKeyFilter(\"app\u002Fdatabase\u002F*,app\u002Fcache\u002F*\");\n\nPagedIterable\u003CConfigurationSetting> settings = configClient.listConfigurationSettings(selector);\n```\n\n### List Revisions\n\n```java\nSettingSelector selector = new SettingSelector()\n    .setKeyFilter(\"app\u002Fdatabase\u002Fconnection\");\n\nPagedIterable\u003CConfigurationSetting> revisions = configClient.listRevisions(selector);\nfor (ConfigurationSetting revision : revisions) {\n    System.out.println(\"Value: \" + revision.getValue() + \", Modified: \" + revision.getLastModified());\n}\n```\n\n## Feature Flags\n\n### Create Feature Flag\n\n```java\nimport com.azure.data.appconfiguration.models.FeatureFlagConfigurationSetting;\nimport com.azure.data.appconfiguration.models.FeatureFlagFilter;\nimport java.util.Arrays;\n\nFeatureFlagFilter percentageFilter = new FeatureFlagFilter(\"Microsoft.Percentage\")\n    .addParameter(\"Value\", 50);\n\nFeatureFlagConfigurationSetting featureFlag = new FeatureFlagConfigurationSetting(\"beta-feature\", true)\n    .setDescription(\"Beta feature rollout\")\n    .setClientFilters(Arrays.asList(percentageFilter));\n\nFeatureFlagConfigurationSetting created = (FeatureFlagConfigurationSetting)\n    configClient.addConfigurationSetting(featureFlag);\n```\n\n### Get Feature Flag\n\n```java\nFeatureFlagConfigurationSetting flag = (FeatureFlagConfigurationSetting)\n    configClient.getConfigurationSetting(featureFlag);\n\nSystem.out.println(\"Feature: \" + flag.getFeatureId());\nSystem.out.println(\"Enabled: \" + flag.isEnabled());\nSystem.out.println(\"Filters: \" + flag.getClientFilters());\n```\n\n### Update Feature Flag\n\n```java\nfeatureFlag.setEnabled(false);\nFeatureFlagConfigurationSetting updated = (FeatureFlagConfigurationSetting)\n    configClient.setConfigurationSetting(featureFlag);\n```\n\n## Secret References\n\n### Create Secret Reference\n\n```java\nimport com.azure.data.appconfiguration.models.SecretReferenceConfigurationSetting;\n\nSecretReferenceConfigurationSetting secretRef = new SecretReferenceConfigurationSetting(\n    \"app\u002Fsecrets\u002Fapi-key\",\n    \"https:\u002F\u002Fmyvault.vault.azure.net\u002Fsecrets\u002Fapi-key\"\n);\n\nSecretReferenceConfigurationSetting created = (SecretReferenceConfigurationSetting)\n    configClient.addConfigurationSetting(secretRef);\n```\n\n### Get Secret Reference\n\n```java\nSecretReferenceConfigurationSetting ref = (SecretReferenceConfigurationSetting)\n    configClient.getConfigurationSetting(secretRef);\n\nSystem.out.println(\"Secret URI: \" + ref.getSecretId());\n```\n\n## Read-Only Settings\n\n### Set Read-Only\n\n```java\nConfigurationSetting readOnly = configClient.setReadOnly(\n    \"app\u002Fcritical\u002Fsetting\", \n    \"Production\", \n    true\n);\n```\n\n### Clear Read-Only\n\n```java\nConfigurationSetting writable = configClient.setReadOnly(\n    \"app\u002Fcritical\u002Fsetting\", \n    \"Production\", \n    false\n);\n```\n\n## Snapshots\n\n### Create Snapshot\n\n```java\nimport com.azure.data.appconfiguration.models.ConfigurationSnapshot;\nimport com.azure.data.appconfiguration.models.ConfigurationSettingsFilter;\nimport com.azure.core.util.polling.SyncPoller;\nimport com.azure.core.util.polling.PollOperationDetails;\n\nList\u003CConfigurationSettingsFilter> filters = new ArrayList\u003C>();\nfilters.add(new ConfigurationSettingsFilter(\"app\u002F*\"));\n\nSyncPoller\u003CPollOperationDetails, ConfigurationSnapshot> poller = configClient.beginCreateSnapshot(\n    \"release-v1.0\",\n    new ConfigurationSnapshot(filters),\n    Context.NONE\n);\npoller.setPollInterval(Duration.ofSeconds(10));\npoller.waitForCompletion();\n\nConfigurationSnapshot snapshot = poller.getFinalResult();\nSystem.out.println(\"Snapshot: \" + snapshot.getName() + \", Status: \" + snapshot.getStatus());\n```\n\n### Get Snapshot\n\n```java\nConfigurationSnapshot snapshot = configClient.getSnapshot(\"release-v1.0\");\nSystem.out.println(\"Created: \" + snapshot.getCreatedAt());\nSystem.out.println(\"Items: \" + snapshot.getItemCount());\n```\n\n### List Settings in Snapshot\n\n```java\nPagedIterable\u003CConfigurationSetting> settings = \n    configClient.listConfigurationSettingsForSnapshot(\"release-v1.0\");\n\nfor (ConfigurationSetting setting : settings) {\n    System.out.println(setting.getKey() + \" = \" + setting.getValue());\n}\n```\n\n### Archive Snapshot\n\n```java\nConfigurationSnapshot archived = configClient.archiveSnapshot(\"release-v1.0\");\nSystem.out.println(\"Status: \" + archived.getStatus()); \u002F\u002F archived\n```\n\n### Recover Snapshot\n\n```java\nConfigurationSnapshot recovered = configClient.recoverSnapshot(\"release-v1.0\");\nSystem.out.println(\"Status: \" + recovered.getStatus()); \u002F\u002F ready\n```\n\n### List All Snapshots\n\n```java\nimport com.azure.data.appconfiguration.models.SnapshotSelector;\n\nSnapshotSelector selector = new SnapshotSelector().setNameFilter(\"release-*\");\nPagedIterable\u003CConfigurationSnapshot> snapshots = configClient.listSnapshots(selector);\n\nfor (ConfigurationSnapshot snap : snapshots) {\n    System.out.println(snap.getName() + \" - \" + snap.getStatus());\n}\n```\n\n## Labels\n\n### List Labels\n\n```java\nimport com.azure.data.appconfiguration.models.SettingLabelSelector;\n\nconfigClient.listLabels(new SettingLabelSelector().setNameFilter(\"*\"))\n    .forEach(label -> System.out.println(\"Label: \" + label.getName()));\n```\n\n## Async Operations\n\n```java\nConfigurationAsyncClient asyncClient = new ConfigurationClientBuilder()\n    .connectionString(connectionString)\n    .buildAsyncClient();\n\n\u002F\u002F Async list with reactive streams\nasyncClient.listConfigurationSettings(new SettingSelector().setLabelFilter(\"Production\"))\n    .subscribe(\n        setting -> System.out.println(setting.getKey() + \" = \" + setting.getValue()),\n        error -> System.err.println(\"Error: \" + error.getMessage()),\n        () -> System.out.println(\"Completed\")\n    );\n```\n\n## Error Handling\n\n```java\nimport com.azure.core.exception.HttpResponseException;\n\ntry {\n    configClient.getConfigurationSetting(\"nonexistent\", null);\n} catch (HttpResponseException e) {\n    if (e.getResponse().getStatusCode() == 404) {\n        System.err.println(\"Setting not found\");\n    } else {\n        System.err.println(\"Error: \" + e.getMessage());\n    }\n}\n```\n\n## Best Practices\n\n1. **Use labels** — Separate configurations by environment (Dev, Staging, Production)\n2. **Use snapshots** — Create immutable snapshots for releases\n3. **Feature flags** — Use for gradual rollouts and A\u002FB testing\n4. **Secret references** — Store sensitive values in Key Vault\n5. **Conditional requests** — Use ETags for optimistic concurrency\n6. **Read-only protection** — Lock critical production settings\n7. **Use Entra ID** — Preferred over connection strings\n8. **Async client** — Use for high-throughput scenarios\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| Maven Package | https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.azure\u002Fazure-data-appconfiguration |\n| GitHub | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Ftree\u002Fmain\u002Fsdk\u002Fappconfiguration\u002Fazure-data-appconfiguration |\n| API Documentation | https:\u002F\u002Faka.ms\u002Fjava-docs |\n| Product Docs | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-app-configuration |\n| Samples | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Ftree\u002Fmain\u002Fsdk\u002Fappconfiguration\u002Fazure-data-appconfiguration\u002Fsrc\u002Fsamples |\n| Troubleshooting | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fappconfiguration\u002Fazure-data-appconfiguration\u002FTROUBLESHOOTING.md |\n",{"data":43,"body":47},{"name":4,"description":6,"license":28,"metadata":44},{"author":9,"version":45,"package":46},"1.0.0","com.azure:azure-data-appconfiguration",{"type":48,"children":49},"root",[50,59,65,72,131,136,301,307,322,328,495,501,508,563,569,615,621,760,766,859,865,871,876,938,944,949,994,1000,1061,1067,1191,1197,1241,1247,1300,1306,1342,1348,1392,1398,1404,1488,1494,1538,1544,1580,1586,1646,1650,1656,1764,1770,1824,1830,1861,1867,1873,1949,1955,1993,1999,2005,2050,2056,2100,2106,2112,2258,2264,2295,2301,2354,2360,2383,2389,2412,2418,2486,2492,2498,2536,2542,2633,2639,2732,2738,2823,2829,2955],{"type":51,"tag":52,"props":53,"children":55},"element","h1",{"id":54},"azure-app-configuration-sdk-for-java",[56],{"type":57,"value":58},"text","Azure App Configuration SDK for Java",{"type":51,"tag":60,"props":61,"children":62},"p",{},[63],{"type":57,"value":64},"Client library for Azure App Configuration, a managed service for centralizing application configurations.",{"type":51,"tag":66,"props":67,"children":69},"h2",{"id":68},"installation",[70],{"type":57,"value":71},"Installation",{"type":51,"tag":73,"props":74,"children":79},"pre",{"className":75,"code":76,"language":77,"meta":78,"style":78},"language-xml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cdependency>\n    \u003CgroupId>com.azure\u003C\u002FgroupId>\n    \u003CartifactId>azure-data-appconfiguration\u003C\u002FartifactId>\n    \u003Cversion>1.8.0\u003C\u002Fversion>\n\u003C\u002Fdependency>\n","xml","",[80],{"type":51,"tag":81,"props":82,"children":83},"code",{"__ignoreMap":78},[84,95,104,113,122],{"type":51,"tag":85,"props":86,"children":89},"span",{"class":87,"line":88},"line",1,[90],{"type":51,"tag":85,"props":91,"children":92},{},[93],{"type":57,"value":94},"\u003Cdependency>\n",{"type":51,"tag":85,"props":96,"children":98},{"class":87,"line":97},2,[99],{"type":51,"tag":85,"props":100,"children":101},{},[102],{"type":57,"value":103},"    \u003CgroupId>com.azure\u003C\u002FgroupId>\n",{"type":51,"tag":85,"props":105,"children":107},{"class":87,"line":106},3,[108],{"type":51,"tag":85,"props":109,"children":110},{},[111],{"type":57,"value":112},"    \u003CartifactId>azure-data-appconfiguration\u003C\u002FartifactId>\n",{"type":51,"tag":85,"props":114,"children":116},{"class":87,"line":115},4,[117],{"type":51,"tag":85,"props":118,"children":119},{},[120],{"type":57,"value":121},"    \u003Cversion>1.8.0\u003C\u002Fversion>\n",{"type":51,"tag":85,"props":123,"children":125},{"class":87,"line":124},5,[126],{"type":51,"tag":85,"props":127,"children":128},{},[129],{"type":57,"value":130},"\u003C\u002Fdependency>\n",{"type":51,"tag":60,"props":132,"children":133},{},[134],{"type":57,"value":135},"Or use Azure SDK BOM:",{"type":51,"tag":73,"props":137,"children":139},{"className":75,"code":138,"language":77,"meta":78,"style":78},"\u003CdependencyManagement>\n    \u003Cdependencies>\n        \u003Cdependency>\n            \u003CgroupId>com.azure\u003C\u002FgroupId>\n            \u003CartifactId>azure-sdk-bom\u003C\u002FartifactId>\n            \u003Cversion>{bom_version}\u003C\u002Fversion>\n            \u003Ctype>pom\u003C\u002Ftype>\n            \u003Cscope>import\u003C\u002Fscope>\n        \u003C\u002Fdependency>\n    \u003C\u002Fdependencies>\n\u003C\u002FdependencyManagement>\n\n\u003Cdependencies>\n    \u003Cdependency>\n        \u003CgroupId>com.azure\u003C\u002FgroupId>\n        \u003CartifactId>azure-data-appconfiguration\u003C\u002FartifactId>\n    \u003C\u002Fdependency>\n\u003C\u002Fdependencies>\n",[140],{"type":51,"tag":81,"props":141,"children":142},{"__ignoreMap":78},[143,151,159,167,175,183,192,201,210,219,228,237,247,256,265,274,283,292],{"type":51,"tag":85,"props":144,"children":145},{"class":87,"line":88},[146],{"type":51,"tag":85,"props":147,"children":148},{},[149],{"type":57,"value":150},"\u003CdependencyManagement>\n",{"type":51,"tag":85,"props":152,"children":153},{"class":87,"line":97},[154],{"type":51,"tag":85,"props":155,"children":156},{},[157],{"type":57,"value":158},"    \u003Cdependencies>\n",{"type":51,"tag":85,"props":160,"children":161},{"class":87,"line":106},[162],{"type":51,"tag":85,"props":163,"children":164},{},[165],{"type":57,"value":166},"        \u003Cdependency>\n",{"type":51,"tag":85,"props":168,"children":169},{"class":87,"line":115},[170],{"type":51,"tag":85,"props":171,"children":172},{},[173],{"type":57,"value":174},"            \u003CgroupId>com.azure\u003C\u002FgroupId>\n",{"type":51,"tag":85,"props":176,"children":177},{"class":87,"line":124},[178],{"type":51,"tag":85,"props":179,"children":180},{},[181],{"type":57,"value":182},"            \u003CartifactId>azure-sdk-bom\u003C\u002FartifactId>\n",{"type":51,"tag":85,"props":184,"children":186},{"class":87,"line":185},6,[187],{"type":51,"tag":85,"props":188,"children":189},{},[190],{"type":57,"value":191},"            \u003Cversion>{bom_version}\u003C\u002Fversion>\n",{"type":51,"tag":85,"props":193,"children":195},{"class":87,"line":194},7,[196],{"type":51,"tag":85,"props":197,"children":198},{},[199],{"type":57,"value":200},"            \u003Ctype>pom\u003C\u002Ftype>\n",{"type":51,"tag":85,"props":202,"children":204},{"class":87,"line":203},8,[205],{"type":51,"tag":85,"props":206,"children":207},{},[208],{"type":57,"value":209},"            \u003Cscope>import\u003C\u002Fscope>\n",{"type":51,"tag":85,"props":211,"children":213},{"class":87,"line":212},9,[214],{"type":51,"tag":85,"props":215,"children":216},{},[217],{"type":57,"value":218},"        \u003C\u002Fdependency>\n",{"type":51,"tag":85,"props":220,"children":222},{"class":87,"line":221},10,[223],{"type":51,"tag":85,"props":224,"children":225},{},[226],{"type":57,"value":227},"    \u003C\u002Fdependencies>\n",{"type":51,"tag":85,"props":229,"children":231},{"class":87,"line":230},11,[232],{"type":51,"tag":85,"props":233,"children":234},{},[235],{"type":57,"value":236},"\u003C\u002FdependencyManagement>\n",{"type":51,"tag":85,"props":238,"children":240},{"class":87,"line":239},12,[241],{"type":51,"tag":85,"props":242,"children":244},{"emptyLinePlaceholder":243},true,[245],{"type":57,"value":246},"\n",{"type":51,"tag":85,"props":248,"children":250},{"class":87,"line":249},13,[251],{"type":51,"tag":85,"props":252,"children":253},{},[254],{"type":57,"value":255},"\u003Cdependencies>\n",{"type":51,"tag":85,"props":257,"children":259},{"class":87,"line":258},14,[260],{"type":51,"tag":85,"props":261,"children":262},{},[263],{"type":57,"value":264},"    \u003Cdependency>\n",{"type":51,"tag":85,"props":266,"children":268},{"class":87,"line":267},15,[269],{"type":51,"tag":85,"props":270,"children":271},{},[272],{"type":57,"value":273},"        \u003CgroupId>com.azure\u003C\u002FgroupId>\n",{"type":51,"tag":85,"props":275,"children":277},{"class":87,"line":276},16,[278],{"type":51,"tag":85,"props":279,"children":280},{},[281],{"type":57,"value":282},"        \u003CartifactId>azure-data-appconfiguration\u003C\u002FartifactId>\n",{"type":51,"tag":85,"props":284,"children":286},{"class":87,"line":285},17,[287],{"type":51,"tag":85,"props":288,"children":289},{},[290],{"type":57,"value":291},"    \u003C\u002Fdependency>\n",{"type":51,"tag":85,"props":293,"children":295},{"class":87,"line":294},18,[296],{"type":51,"tag":85,"props":297,"children":298},{},[299],{"type":57,"value":300},"\u003C\u002Fdependencies>\n",{"type":51,"tag":66,"props":302,"children":304},{"id":303},"prerequisites",[305],{"type":57,"value":306},"Prerequisites",{"type":51,"tag":308,"props":309,"children":310},"ul",{},[311,317],{"type":51,"tag":312,"props":313,"children":314},"li",{},[315],{"type":57,"value":316},"Azure App Configuration store",{"type":51,"tag":312,"props":318,"children":319},{},[320],{"type":57,"value":321},"Connection string or Entra ID credentials",{"type":51,"tag":66,"props":323,"children":325},{"id":324},"environment-variables",[326],{"type":57,"value":327},"Environment Variables",{"type":51,"tag":73,"props":329,"children":333},{"className":330,"code":331,"language":332,"meta":78,"style":78},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","AZURE_APPCONFIG_CONNECTION_STRING=Endpoint=https:\u002F\u002F\u003Cstore>.azconfig.io;Id=\u003Cid>;Secret=\u003Csecret>  # Alternative to Entra ID auth\nAZURE_APPCONFIG_ENDPOINT=https:\u002F\u002F\u003Cstore>.azconfig.io  # Required for all auth methods\nAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production\n","bash",[334],{"type":51,"tag":81,"props":335,"children":336},{"__ignoreMap":78},[337,436,473],{"type":51,"tag":85,"props":338,"children":339},{"class":87,"line":88},[340,346,352,357,361,367,372,377,382,387,392,397,402,407,412,417,421,426,430],{"type":51,"tag":85,"props":341,"children":343},{"style":342},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[344],{"type":57,"value":345},"AZURE_APPCONFIG_CONNECTION_STRING",{"type":51,"tag":85,"props":347,"children":349},{"style":348},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[350],{"type":57,"value":351},"=",{"type":51,"tag":85,"props":353,"children":354},{"style":342},[355],{"type":57,"value":356},"Endpoint",{"type":51,"tag":85,"props":358,"children":359},{"style":348},[360],{"type":57,"value":351},{"type":51,"tag":85,"props":362,"children":364},{"style":363},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[365],{"type":57,"value":366},"https:\u002F\u002F",{"type":51,"tag":85,"props":368,"children":369},{"style":348},[370],{"type":57,"value":371},"\u003C",{"type":51,"tag":85,"props":373,"children":374},{"style":363},[375],{"type":57,"value":376},"store",{"type":51,"tag":85,"props":378,"children":379},{"style":348},[380],{"type":57,"value":381},">",{"type":51,"tag":85,"props":383,"children":384},{"style":363},[385],{"type":57,"value":386},".azconfig.io",{"type":51,"tag":85,"props":388,"children":389},{"style":348},[390],{"type":57,"value":391},";",{"type":51,"tag":85,"props":393,"children":394},{"style":342},[395],{"type":57,"value":396},"Id",{"type":51,"tag":85,"props":398,"children":399},{"style":348},[400],{"type":57,"value":401},"=\u003C",{"type":51,"tag":85,"props":403,"children":404},{"style":363},[405],{"type":57,"value":406},"id",{"type":51,"tag":85,"props":408,"children":409},{"style":348},[410],{"type":57,"value":411},">;",{"type":51,"tag":85,"props":413,"children":414},{"style":342},[415],{"type":57,"value":416},"Secret",{"type":51,"tag":85,"props":418,"children":419},{"style":348},[420],{"type":57,"value":401},{"type":51,"tag":85,"props":422,"children":423},{"style":363},[424],{"type":57,"value":425},"secret",{"type":51,"tag":85,"props":427,"children":428},{"style":348},[429],{"type":57,"value":381},{"type":51,"tag":85,"props":431,"children":433},{"style":432},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[434],{"type":57,"value":435},"  # Alternative to Entra ID auth\n",{"type":51,"tag":85,"props":437,"children":438},{"class":87,"line":97},[439,444,448,452,456,460,464,468],{"type":51,"tag":85,"props":440,"children":441},{"style":342},[442],{"type":57,"value":443},"AZURE_APPCONFIG_ENDPOINT",{"type":51,"tag":85,"props":445,"children":446},{"style":348},[447],{"type":57,"value":351},{"type":51,"tag":85,"props":449,"children":450},{"style":363},[451],{"type":57,"value":366},{"type":51,"tag":85,"props":453,"children":454},{"style":348},[455],{"type":57,"value":371},{"type":51,"tag":85,"props":457,"children":458},{"style":363},[459],{"type":57,"value":376},{"type":51,"tag":85,"props":461,"children":462},{"style":348},[463],{"type":57,"value":381},{"type":51,"tag":85,"props":465,"children":466},{"style":363},[467],{"type":57,"value":386},{"type":51,"tag":85,"props":469,"children":470},{"style":432},[471],{"type":57,"value":472},"  # Required for all auth methods\n",{"type":51,"tag":85,"props":474,"children":475},{"class":87,"line":106},[476,481,485,490],{"type":51,"tag":85,"props":477,"children":478},{"style":342},[479],{"type":57,"value":480},"AZURE_TOKEN_CREDENTIALS",{"type":51,"tag":85,"props":482,"children":483},{"style":348},[484],{"type":57,"value":351},{"type":51,"tag":85,"props":486,"children":487},{"style":363},[488],{"type":57,"value":489},"prod",{"type":51,"tag":85,"props":491,"children":492},{"style":432},[493],{"type":57,"value":494},"  # Required only if DefaultAzureCredential is used in production\n",{"type":51,"tag":66,"props":496,"children":498},{"id":497},"client-creation",[499],{"type":57,"value":500},"Client Creation",{"type":51,"tag":502,"props":503,"children":505},"h3",{"id":504},"with-connection-string",[506],{"type":57,"value":507},"With Connection String",{"type":51,"tag":73,"props":509,"children":512},{"className":510,"code":511,"language":21,"meta":78,"style":78},"language-java shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import com.azure.data.appconfiguration.ConfigurationClient;\nimport com.azure.data.appconfiguration.ConfigurationClientBuilder;\n\nConfigurationClient configClient = new ConfigurationClientBuilder()\n    .connectionString(System.getenv(\"AZURE_APPCONFIG_CONNECTION_STRING\"))\n    .buildClient();\n",[513],{"type":51,"tag":81,"props":514,"children":515},{"__ignoreMap":78},[516,524,532,539,547,555],{"type":51,"tag":85,"props":517,"children":518},{"class":87,"line":88},[519],{"type":51,"tag":85,"props":520,"children":521},{},[522],{"type":57,"value":523},"import com.azure.data.appconfiguration.ConfigurationClient;\n",{"type":51,"tag":85,"props":525,"children":526},{"class":87,"line":97},[527],{"type":51,"tag":85,"props":528,"children":529},{},[530],{"type":57,"value":531},"import com.azure.data.appconfiguration.ConfigurationClientBuilder;\n",{"type":51,"tag":85,"props":533,"children":534},{"class":87,"line":106},[535],{"type":51,"tag":85,"props":536,"children":537},{"emptyLinePlaceholder":243},[538],{"type":57,"value":246},{"type":51,"tag":85,"props":540,"children":541},{"class":87,"line":115},[542],{"type":51,"tag":85,"props":543,"children":544},{},[545],{"type":57,"value":546},"ConfigurationClient configClient = new ConfigurationClientBuilder()\n",{"type":51,"tag":85,"props":548,"children":549},{"class":87,"line":124},[550],{"type":51,"tag":85,"props":551,"children":552},{},[553],{"type":57,"value":554},"    .connectionString(System.getenv(\"AZURE_APPCONFIG_CONNECTION_STRING\"))\n",{"type":51,"tag":85,"props":556,"children":557},{"class":87,"line":185},[558],{"type":51,"tag":85,"props":559,"children":560},{},[561],{"type":57,"value":562},"    .buildClient();\n",{"type":51,"tag":502,"props":564,"children":566},{"id":565},"async-client",[567],{"type":57,"value":568},"Async Client",{"type":51,"tag":73,"props":570,"children":572},{"className":510,"code":571,"language":21,"meta":78,"style":78},"import com.azure.data.appconfiguration.ConfigurationAsyncClient;\n\nConfigurationAsyncClient asyncClient = new ConfigurationClientBuilder()\n    .connectionString(connectionString)\n    .buildAsyncClient();\n",[573],{"type":51,"tag":81,"props":574,"children":575},{"__ignoreMap":78},[576,584,591,599,607],{"type":51,"tag":85,"props":577,"children":578},{"class":87,"line":88},[579],{"type":51,"tag":85,"props":580,"children":581},{},[582],{"type":57,"value":583},"import com.azure.data.appconfiguration.ConfigurationAsyncClient;\n",{"type":51,"tag":85,"props":585,"children":586},{"class":87,"line":97},[587],{"type":51,"tag":85,"props":588,"children":589},{"emptyLinePlaceholder":243},[590],{"type":57,"value":246},{"type":51,"tag":85,"props":592,"children":593},{"class":87,"line":106},[594],{"type":51,"tag":85,"props":595,"children":596},{},[597],{"type":57,"value":598},"ConfigurationAsyncClient asyncClient = new ConfigurationClientBuilder()\n",{"type":51,"tag":85,"props":600,"children":601},{"class":87,"line":115},[602],{"type":51,"tag":85,"props":603,"children":604},{},[605],{"type":57,"value":606},"    .connectionString(connectionString)\n",{"type":51,"tag":85,"props":608,"children":609},{"class":87,"line":124},[610],{"type":51,"tag":85,"props":611,"children":612},{},[613],{"type":57,"value":614},"    .buildAsyncClient();\n",{"type":51,"tag":502,"props":616,"children":618},{"id":617},"with-entra-id-recommended",[619],{"type":57,"value":620},"With Entra ID (Recommended)",{"type":51,"tag":73,"props":622,"children":624},{"className":510,"code":623,"language":21,"meta":78,"style":78},"import com.azure.core.credential.TokenCredential;\nimport com.azure.identity.AzureIdentityEnvVars;\nimport com.azure.identity.DefaultAzureCredentialBuilder;\nimport com.azure.identity.ManagedIdentityCredentialBuilder;\n\n\u002F\u002F Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=\u003Cspecific_credential>\nTokenCredential credential = new DefaultAzureCredentialBuilder()\n    .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)\n    .build();\n\u002F\u002F Or use a specific credential directly in production:\n\u002F\u002F See https:\u002F\u002Flearn.microsoft.com\u002Fjava\u002Fapi\u002Foverview\u002Fazure\u002Fidentity-readme?view=azure-java-stable#credential-classes\n\u002F\u002F TokenCredential credential = new ManagedIdentityCredentialBuilder().build();\n\nConfigurationClient configClient = new ConfigurationClientBuilder()\n    .credential(credential)\n    .endpoint(System.getenv(\"AZURE_APPCONFIG_ENDPOINT\"))\n    .buildClient();\n",[625],{"type":51,"tag":81,"props":626,"children":627},{"__ignoreMap":78},[628,636,644,652,660,667,675,683,691,699,707,715,723,730,737,745,753],{"type":51,"tag":85,"props":629,"children":630},{"class":87,"line":88},[631],{"type":51,"tag":85,"props":632,"children":633},{},[634],{"type":57,"value":635},"import com.azure.core.credential.TokenCredential;\n",{"type":51,"tag":85,"props":637,"children":638},{"class":87,"line":97},[639],{"type":51,"tag":85,"props":640,"children":641},{},[642],{"type":57,"value":643},"import com.azure.identity.AzureIdentityEnvVars;\n",{"type":51,"tag":85,"props":645,"children":646},{"class":87,"line":106},[647],{"type":51,"tag":85,"props":648,"children":649},{},[650],{"type":57,"value":651},"import com.azure.identity.DefaultAzureCredentialBuilder;\n",{"type":51,"tag":85,"props":653,"children":654},{"class":87,"line":115},[655],{"type":51,"tag":85,"props":656,"children":657},{},[658],{"type":57,"value":659},"import com.azure.identity.ManagedIdentityCredentialBuilder;\n",{"type":51,"tag":85,"props":661,"children":662},{"class":87,"line":124},[663],{"type":51,"tag":85,"props":664,"children":665},{"emptyLinePlaceholder":243},[666],{"type":57,"value":246},{"type":51,"tag":85,"props":668,"children":669},{"class":87,"line":185},[670],{"type":51,"tag":85,"props":671,"children":672},{},[673],{"type":57,"value":674},"\u002F\u002F Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=\u003Cspecific_credential>\n",{"type":51,"tag":85,"props":676,"children":677},{"class":87,"line":194},[678],{"type":51,"tag":85,"props":679,"children":680},{},[681],{"type":57,"value":682},"TokenCredential credential = new DefaultAzureCredentialBuilder()\n",{"type":51,"tag":85,"props":684,"children":685},{"class":87,"line":203},[686],{"type":51,"tag":85,"props":687,"children":688},{},[689],{"type":57,"value":690},"    .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)\n",{"type":51,"tag":85,"props":692,"children":693},{"class":87,"line":212},[694],{"type":51,"tag":85,"props":695,"children":696},{},[697],{"type":57,"value":698},"    .build();\n",{"type":51,"tag":85,"props":700,"children":701},{"class":87,"line":221},[702],{"type":51,"tag":85,"props":703,"children":704},{},[705],{"type":57,"value":706},"\u002F\u002F Or use a specific credential directly in production:\n",{"type":51,"tag":85,"props":708,"children":709},{"class":87,"line":230},[710],{"type":51,"tag":85,"props":711,"children":712},{},[713],{"type":57,"value":714},"\u002F\u002F See https:\u002F\u002Flearn.microsoft.com\u002Fjava\u002Fapi\u002Foverview\u002Fazure\u002Fidentity-readme?view=azure-java-stable#credential-classes\n",{"type":51,"tag":85,"props":716,"children":717},{"class":87,"line":239},[718],{"type":51,"tag":85,"props":719,"children":720},{},[721],{"type":57,"value":722},"\u002F\u002F TokenCredential credential = new ManagedIdentityCredentialBuilder().build();\n",{"type":51,"tag":85,"props":724,"children":725},{"class":87,"line":249},[726],{"type":51,"tag":85,"props":727,"children":728},{"emptyLinePlaceholder":243},[729],{"type":57,"value":246},{"type":51,"tag":85,"props":731,"children":732},{"class":87,"line":258},[733],{"type":51,"tag":85,"props":734,"children":735},{},[736],{"type":57,"value":546},{"type":51,"tag":85,"props":738,"children":739},{"class":87,"line":267},[740],{"type":51,"tag":85,"props":741,"children":742},{},[743],{"type":57,"value":744},"    .credential(credential)\n",{"type":51,"tag":85,"props":746,"children":747},{"class":87,"line":276},[748],{"type":51,"tag":85,"props":749,"children":750},{},[751],{"type":57,"value":752},"    .endpoint(System.getenv(\"AZURE_APPCONFIG_ENDPOINT\"))\n",{"type":51,"tag":85,"props":754,"children":755},{"class":87,"line":285},[756],{"type":51,"tag":85,"props":757,"children":758},{},[759],{"type":57,"value":562},{"type":51,"tag":66,"props":761,"children":763},{"id":762},"key-concepts",[764],{"type":57,"value":765},"Key Concepts",{"type":51,"tag":767,"props":768,"children":769},"table",{},[770,789],{"type":51,"tag":771,"props":772,"children":773},"thead",{},[774],{"type":51,"tag":775,"props":776,"children":777},"tr",{},[778,784],{"type":51,"tag":779,"props":780,"children":781},"th",{},[782],{"type":57,"value":783},"Concept",{"type":51,"tag":779,"props":785,"children":786},{},[787],{"type":57,"value":788},"Description",{"type":51,"tag":790,"props":791,"children":792},"tbody",{},[793,807,820,833,846],{"type":51,"tag":775,"props":794,"children":795},{},[796,802],{"type":51,"tag":797,"props":798,"children":799},"td",{},[800],{"type":57,"value":801},"Configuration Setting",{"type":51,"tag":797,"props":803,"children":804},{},[805],{"type":57,"value":806},"Key-value pair with optional label",{"type":51,"tag":775,"props":808,"children":809},{},[810,815],{"type":51,"tag":797,"props":811,"children":812},{},[813],{"type":57,"value":814},"Label",{"type":51,"tag":797,"props":816,"children":817},{},[818],{"type":57,"value":819},"Dimension for separating settings (e.g., environments)",{"type":51,"tag":775,"props":821,"children":822},{},[823,828],{"type":51,"tag":797,"props":824,"children":825},{},[826],{"type":57,"value":827},"Feature Flag",{"type":51,"tag":797,"props":829,"children":830},{},[831],{"type":57,"value":832},"Special setting for feature management",{"type":51,"tag":775,"props":834,"children":835},{},[836,841],{"type":51,"tag":797,"props":837,"children":838},{},[839],{"type":57,"value":840},"Secret Reference",{"type":51,"tag":797,"props":842,"children":843},{},[844],{"type":57,"value":845},"Setting pointing to Key Vault secret",{"type":51,"tag":775,"props":847,"children":848},{},[849,854],{"type":51,"tag":797,"props":850,"children":851},{},[852],{"type":57,"value":853},"Snapshot",{"type":51,"tag":797,"props":855,"children":856},{},[857],{"type":57,"value":858},"Point-in-time immutable view of settings",{"type":51,"tag":66,"props":860,"children":862},{"id":861},"configuration-setting-operations",[863],{"type":57,"value":864},"Configuration Setting Operations",{"type":51,"tag":502,"props":866,"children":868},{"id":867},"create-setting-add",[869],{"type":57,"value":870},"Create Setting (Add)",{"type":51,"tag":60,"props":872,"children":873},{},[874],{"type":57,"value":875},"Creates only if setting doesn't exist:",{"type":51,"tag":73,"props":877,"children":879},{"className":510,"code":878,"language":21,"meta":78,"style":78},"import com.azure.data.appconfiguration.models.ConfigurationSetting;\n\nConfigurationSetting setting = configClient.addConfigurationSetting(\n    \"app\u002Fdatabase\u002Fconnection\", \n    \"Production\", \n    \"Server=prod.db.com;Database=myapp\"\n);\n",[880],{"type":51,"tag":81,"props":881,"children":882},{"__ignoreMap":78},[883,891,898,906,914,922,930],{"type":51,"tag":85,"props":884,"children":885},{"class":87,"line":88},[886],{"type":51,"tag":85,"props":887,"children":888},{},[889],{"type":57,"value":890},"import com.azure.data.appconfiguration.models.ConfigurationSetting;\n",{"type":51,"tag":85,"props":892,"children":893},{"class":87,"line":97},[894],{"type":51,"tag":85,"props":895,"children":896},{"emptyLinePlaceholder":243},[897],{"type":57,"value":246},{"type":51,"tag":85,"props":899,"children":900},{"class":87,"line":106},[901],{"type":51,"tag":85,"props":902,"children":903},{},[904],{"type":57,"value":905},"ConfigurationSetting setting = configClient.addConfigurationSetting(\n",{"type":51,"tag":85,"props":907,"children":908},{"class":87,"line":115},[909],{"type":51,"tag":85,"props":910,"children":911},{},[912],{"type":57,"value":913},"    \"app\u002Fdatabase\u002Fconnection\", \n",{"type":51,"tag":85,"props":915,"children":916},{"class":87,"line":124},[917],{"type":51,"tag":85,"props":918,"children":919},{},[920],{"type":57,"value":921},"    \"Production\", \n",{"type":51,"tag":85,"props":923,"children":924},{"class":87,"line":185},[925],{"type":51,"tag":85,"props":926,"children":927},{},[928],{"type":57,"value":929},"    \"Server=prod.db.com;Database=myapp\"\n",{"type":51,"tag":85,"props":931,"children":932},{"class":87,"line":194},[933],{"type":51,"tag":85,"props":934,"children":935},{},[936],{"type":57,"value":937},");\n",{"type":51,"tag":502,"props":939,"children":941},{"id":940},"create-or-update-setting-set",[942],{"type":57,"value":943},"Create or Update Setting (Set)",{"type":51,"tag":60,"props":945,"children":946},{},[947],{"type":57,"value":948},"Creates or overwrites:",{"type":51,"tag":73,"props":950,"children":952},{"className":510,"code":951,"language":21,"meta":78,"style":78},"ConfigurationSetting setting = configClient.setConfigurationSetting(\n    \"app\u002Fcache\u002Fenabled\", \n    \"Production\", \n    \"true\"\n);\n",[953],{"type":51,"tag":81,"props":954,"children":955},{"__ignoreMap":78},[956,964,972,979,987],{"type":51,"tag":85,"props":957,"children":958},{"class":87,"line":88},[959],{"type":51,"tag":85,"props":960,"children":961},{},[962],{"type":57,"value":963},"ConfigurationSetting setting = configClient.setConfigurationSetting(\n",{"type":51,"tag":85,"props":965,"children":966},{"class":87,"line":97},[967],{"type":51,"tag":85,"props":968,"children":969},{},[970],{"type":57,"value":971},"    \"app\u002Fcache\u002Fenabled\", \n",{"type":51,"tag":85,"props":973,"children":974},{"class":87,"line":106},[975],{"type":51,"tag":85,"props":976,"children":977},{},[978],{"type":57,"value":921},{"type":51,"tag":85,"props":980,"children":981},{"class":87,"line":115},[982],{"type":51,"tag":85,"props":983,"children":984},{},[985],{"type":57,"value":986},"    \"true\"\n",{"type":51,"tag":85,"props":988,"children":989},{"class":87,"line":124},[990],{"type":51,"tag":85,"props":991,"children":992},{},[993],{"type":57,"value":937},{"type":51,"tag":502,"props":995,"children":997},{"id":996},"get-setting",[998],{"type":57,"value":999},"Get Setting",{"type":51,"tag":73,"props":1001,"children":1003},{"className":510,"code":1002,"language":21,"meta":78,"style":78},"ConfigurationSetting setting = configClient.getConfigurationSetting(\n    \"app\u002Fdatabase\u002Fconnection\", \n    \"Production\"\n);\nSystem.out.println(\"Value: \" + setting.getValue());\nSystem.out.println(\"Content-Type: \" + setting.getContentType());\nSystem.out.println(\"Last Modified: \" + setting.getLastModified());\n",[1004],{"type":51,"tag":81,"props":1005,"children":1006},{"__ignoreMap":78},[1007,1015,1022,1030,1037,1045,1053],{"type":51,"tag":85,"props":1008,"children":1009},{"class":87,"line":88},[1010],{"type":51,"tag":85,"props":1011,"children":1012},{},[1013],{"type":57,"value":1014},"ConfigurationSetting setting = configClient.getConfigurationSetting(\n",{"type":51,"tag":85,"props":1016,"children":1017},{"class":87,"line":97},[1018],{"type":51,"tag":85,"props":1019,"children":1020},{},[1021],{"type":57,"value":913},{"type":51,"tag":85,"props":1023,"children":1024},{"class":87,"line":106},[1025],{"type":51,"tag":85,"props":1026,"children":1027},{},[1028],{"type":57,"value":1029},"    \"Production\"\n",{"type":51,"tag":85,"props":1031,"children":1032},{"class":87,"line":115},[1033],{"type":51,"tag":85,"props":1034,"children":1035},{},[1036],{"type":57,"value":937},{"type":51,"tag":85,"props":1038,"children":1039},{"class":87,"line":124},[1040],{"type":51,"tag":85,"props":1041,"children":1042},{},[1043],{"type":57,"value":1044},"System.out.println(\"Value: \" + setting.getValue());\n",{"type":51,"tag":85,"props":1046,"children":1047},{"class":87,"line":185},[1048],{"type":51,"tag":85,"props":1049,"children":1050},{},[1051],{"type":57,"value":1052},"System.out.println(\"Content-Type: \" + setting.getContentType());\n",{"type":51,"tag":85,"props":1054,"children":1055},{"class":87,"line":194},[1056],{"type":51,"tag":85,"props":1057,"children":1058},{},[1059],{"type":57,"value":1060},"System.out.println(\"Last Modified: \" + setting.getLastModified());\n",{"type":51,"tag":502,"props":1062,"children":1064},{"id":1063},"conditional-get-if-changed",[1065],{"type":57,"value":1066},"Conditional Get (If Changed)",{"type":51,"tag":73,"props":1068,"children":1070},{"className":510,"code":1069,"language":21,"meta":78,"style":78},"import com.azure.core.http.rest.Response;\nimport com.azure.core.util.Context;\n\nResponse\u003CConfigurationSetting> response = configClient.getConfigurationSettingWithResponse(\n    setting,      \u002F\u002F Setting with ETag\n    null,         \u002F\u002F Accept datetime\n    true,         \u002F\u002F ifChanged - only fetch if modified\n    Context.NONE\n);\n\nif (response.getStatusCode() == 304) {\n    System.out.println(\"Setting not modified\");\n} else {\n    ConfigurationSetting updated = response.getValue();\n}\n",[1071],{"type":51,"tag":81,"props":1072,"children":1073},{"__ignoreMap":78},[1074,1082,1090,1097,1105,1113,1121,1129,1137,1144,1151,1159,1167,1175,1183],{"type":51,"tag":85,"props":1075,"children":1076},{"class":87,"line":88},[1077],{"type":51,"tag":85,"props":1078,"children":1079},{},[1080],{"type":57,"value":1081},"import com.azure.core.http.rest.Response;\n",{"type":51,"tag":85,"props":1083,"children":1084},{"class":87,"line":97},[1085],{"type":51,"tag":85,"props":1086,"children":1087},{},[1088],{"type":57,"value":1089},"import com.azure.core.util.Context;\n",{"type":51,"tag":85,"props":1091,"children":1092},{"class":87,"line":106},[1093],{"type":51,"tag":85,"props":1094,"children":1095},{"emptyLinePlaceholder":243},[1096],{"type":57,"value":246},{"type":51,"tag":85,"props":1098,"children":1099},{"class":87,"line":115},[1100],{"type":51,"tag":85,"props":1101,"children":1102},{},[1103],{"type":57,"value":1104},"Response\u003CConfigurationSetting> response = configClient.getConfigurationSettingWithResponse(\n",{"type":51,"tag":85,"props":1106,"children":1107},{"class":87,"line":124},[1108],{"type":51,"tag":85,"props":1109,"children":1110},{},[1111],{"type":57,"value":1112},"    setting,      \u002F\u002F Setting with ETag\n",{"type":51,"tag":85,"props":1114,"children":1115},{"class":87,"line":185},[1116],{"type":51,"tag":85,"props":1117,"children":1118},{},[1119],{"type":57,"value":1120},"    null,         \u002F\u002F Accept datetime\n",{"type":51,"tag":85,"props":1122,"children":1123},{"class":87,"line":194},[1124],{"type":51,"tag":85,"props":1125,"children":1126},{},[1127],{"type":57,"value":1128},"    true,         \u002F\u002F ifChanged - only fetch if modified\n",{"type":51,"tag":85,"props":1130,"children":1131},{"class":87,"line":203},[1132],{"type":51,"tag":85,"props":1133,"children":1134},{},[1135],{"type":57,"value":1136},"    Context.NONE\n",{"type":51,"tag":85,"props":1138,"children":1139},{"class":87,"line":212},[1140],{"type":51,"tag":85,"props":1141,"children":1142},{},[1143],{"type":57,"value":937},{"type":51,"tag":85,"props":1145,"children":1146},{"class":87,"line":221},[1147],{"type":51,"tag":85,"props":1148,"children":1149},{"emptyLinePlaceholder":243},[1150],{"type":57,"value":246},{"type":51,"tag":85,"props":1152,"children":1153},{"class":87,"line":230},[1154],{"type":51,"tag":85,"props":1155,"children":1156},{},[1157],{"type":57,"value":1158},"if (response.getStatusCode() == 304) {\n",{"type":51,"tag":85,"props":1160,"children":1161},{"class":87,"line":239},[1162],{"type":51,"tag":85,"props":1163,"children":1164},{},[1165],{"type":57,"value":1166},"    System.out.println(\"Setting not modified\");\n",{"type":51,"tag":85,"props":1168,"children":1169},{"class":87,"line":249},[1170],{"type":51,"tag":85,"props":1171,"children":1172},{},[1173],{"type":57,"value":1174},"} else {\n",{"type":51,"tag":85,"props":1176,"children":1177},{"class":87,"line":258},[1178],{"type":51,"tag":85,"props":1179,"children":1180},{},[1181],{"type":57,"value":1182},"    ConfigurationSetting updated = response.getValue();\n",{"type":51,"tag":85,"props":1184,"children":1185},{"class":87,"line":267},[1186],{"type":51,"tag":85,"props":1187,"children":1188},{},[1189],{"type":57,"value":1190},"}\n",{"type":51,"tag":502,"props":1192,"children":1194},{"id":1193},"update-setting",[1195],{"type":57,"value":1196},"Update Setting",{"type":51,"tag":73,"props":1198,"children":1200},{"className":510,"code":1199,"language":21,"meta":78,"style":78},"ConfigurationSetting updated = configClient.setConfigurationSetting(\n    \"app\u002Fcache\u002Fenabled\", \n    \"Production\", \n    \"false\"\n);\n",[1201],{"type":51,"tag":81,"props":1202,"children":1203},{"__ignoreMap":78},[1204,1212,1219,1226,1234],{"type":51,"tag":85,"props":1205,"children":1206},{"class":87,"line":88},[1207],{"type":51,"tag":85,"props":1208,"children":1209},{},[1210],{"type":57,"value":1211},"ConfigurationSetting updated = configClient.setConfigurationSetting(\n",{"type":51,"tag":85,"props":1213,"children":1214},{"class":87,"line":97},[1215],{"type":51,"tag":85,"props":1216,"children":1217},{},[1218],{"type":57,"value":971},{"type":51,"tag":85,"props":1220,"children":1221},{"class":87,"line":106},[1222],{"type":51,"tag":85,"props":1223,"children":1224},{},[1225],{"type":57,"value":921},{"type":51,"tag":85,"props":1227,"children":1228},{"class":87,"line":115},[1229],{"type":51,"tag":85,"props":1230,"children":1231},{},[1232],{"type":57,"value":1233},"    \"false\"\n",{"type":51,"tag":85,"props":1235,"children":1236},{"class":87,"line":124},[1237],{"type":51,"tag":85,"props":1238,"children":1239},{},[1240],{"type":57,"value":937},{"type":51,"tag":502,"props":1242,"children":1244},{"id":1243},"conditional-update-if-unchanged",[1245],{"type":57,"value":1246},"Conditional Update (If Unchanged)",{"type":51,"tag":73,"props":1248,"children":1250},{"className":510,"code":1249,"language":21,"meta":78,"style":78},"\u002F\u002F Only update if ETag matches (no concurrent modifications)\nResponse\u003CConfigurationSetting> response = configClient.setConfigurationSettingWithResponse(\n    setting,     \u002F\u002F Setting with current ETag\n    true,        \u002F\u002F ifUnchanged\n    Context.NONE\n);\n",[1251],{"type":51,"tag":81,"props":1252,"children":1253},{"__ignoreMap":78},[1254,1262,1270,1278,1286,1293],{"type":51,"tag":85,"props":1255,"children":1256},{"class":87,"line":88},[1257],{"type":51,"tag":85,"props":1258,"children":1259},{},[1260],{"type":57,"value":1261},"\u002F\u002F Only update if ETag matches (no concurrent modifications)\n",{"type":51,"tag":85,"props":1263,"children":1264},{"class":87,"line":97},[1265],{"type":51,"tag":85,"props":1266,"children":1267},{},[1268],{"type":57,"value":1269},"Response\u003CConfigurationSetting> response = configClient.setConfigurationSettingWithResponse(\n",{"type":51,"tag":85,"props":1271,"children":1272},{"class":87,"line":106},[1273],{"type":51,"tag":85,"props":1274,"children":1275},{},[1276],{"type":57,"value":1277},"    setting,     \u002F\u002F Setting with current ETag\n",{"type":51,"tag":85,"props":1279,"children":1280},{"class":87,"line":115},[1281],{"type":51,"tag":85,"props":1282,"children":1283},{},[1284],{"type":57,"value":1285},"    true,        \u002F\u002F ifUnchanged\n",{"type":51,"tag":85,"props":1287,"children":1288},{"class":87,"line":124},[1289],{"type":51,"tag":85,"props":1290,"children":1291},{},[1292],{"type":57,"value":1136},{"type":51,"tag":85,"props":1294,"children":1295},{"class":87,"line":185},[1296],{"type":51,"tag":85,"props":1297,"children":1298},{},[1299],{"type":57,"value":937},{"type":51,"tag":502,"props":1301,"children":1303},{"id":1302},"delete-setting",[1304],{"type":57,"value":1305},"Delete Setting",{"type":51,"tag":73,"props":1307,"children":1309},{"className":510,"code":1308,"language":21,"meta":78,"style":78},"ConfigurationSetting deleted = configClient.deleteConfigurationSetting(\n    \"app\u002Fcache\u002Fenabled\", \n    \"Production\"\n);\n",[1310],{"type":51,"tag":81,"props":1311,"children":1312},{"__ignoreMap":78},[1313,1321,1328,1335],{"type":51,"tag":85,"props":1314,"children":1315},{"class":87,"line":88},[1316],{"type":51,"tag":85,"props":1317,"children":1318},{},[1319],{"type":57,"value":1320},"ConfigurationSetting deleted = configClient.deleteConfigurationSetting(\n",{"type":51,"tag":85,"props":1322,"children":1323},{"class":87,"line":97},[1324],{"type":51,"tag":85,"props":1325,"children":1326},{},[1327],{"type":57,"value":971},{"type":51,"tag":85,"props":1329,"children":1330},{"class":87,"line":106},[1331],{"type":51,"tag":85,"props":1332,"children":1333},{},[1334],{"type":57,"value":1029},{"type":51,"tag":85,"props":1336,"children":1337},{"class":87,"line":115},[1338],{"type":51,"tag":85,"props":1339,"children":1340},{},[1341],{"type":57,"value":937},{"type":51,"tag":502,"props":1343,"children":1345},{"id":1344},"conditional-delete",[1346],{"type":57,"value":1347},"Conditional Delete",{"type":51,"tag":73,"props":1349,"children":1351},{"className":510,"code":1350,"language":21,"meta":78,"style":78},"Response\u003CConfigurationSetting> response = configClient.deleteConfigurationSettingWithResponse(\n    setting,     \u002F\u002F Setting with ETag\n    true,        \u002F\u002F ifUnchanged\n    Context.NONE\n);\n",[1352],{"type":51,"tag":81,"props":1353,"children":1354},{"__ignoreMap":78},[1355,1363,1371,1378,1385],{"type":51,"tag":85,"props":1356,"children":1357},{"class":87,"line":88},[1358],{"type":51,"tag":85,"props":1359,"children":1360},{},[1361],{"type":57,"value":1362},"Response\u003CConfigurationSetting> response = configClient.deleteConfigurationSettingWithResponse(\n",{"type":51,"tag":85,"props":1364,"children":1365},{"class":87,"line":97},[1366],{"type":51,"tag":85,"props":1367,"children":1368},{},[1369],{"type":57,"value":1370},"    setting,     \u002F\u002F Setting with ETag\n",{"type":51,"tag":85,"props":1372,"children":1373},{"class":87,"line":106},[1374],{"type":51,"tag":85,"props":1375,"children":1376},{},[1377],{"type":57,"value":1285},{"type":51,"tag":85,"props":1379,"children":1380},{"class":87,"line":115},[1381],{"type":51,"tag":85,"props":1382,"children":1383},{},[1384],{"type":57,"value":1136},{"type":51,"tag":85,"props":1386,"children":1387},{"class":87,"line":124},[1388],{"type":51,"tag":85,"props":1389,"children":1390},{},[1391],{"type":57,"value":937},{"type":51,"tag":66,"props":1393,"children":1395},{"id":1394},"list-and-filter-settings",[1396],{"type":57,"value":1397},"List and Filter Settings",{"type":51,"tag":502,"props":1399,"children":1401},{"id":1400},"list-by-key-pattern",[1402],{"type":57,"value":1403},"List by Key Pattern",{"type":51,"tag":73,"props":1405,"children":1407},{"className":510,"code":1406,"language":21,"meta":78,"style":78},"import com.azure.data.appconfiguration.models.SettingSelector;\nimport com.azure.core.http.rest.PagedIterable;\n\nSettingSelector selector = new SettingSelector()\n    .setKeyFilter(\"app\u002F*\");\n\nPagedIterable\u003CConfigurationSetting> settings = configClient.listConfigurationSettings(selector);\nfor (ConfigurationSetting s : settings) {\n    System.out.println(s.getKey() + \" = \" + s.getValue());\n}\n",[1408],{"type":51,"tag":81,"props":1409,"children":1410},{"__ignoreMap":78},[1411,1419,1427,1434,1442,1450,1457,1465,1473,1481],{"type":51,"tag":85,"props":1412,"children":1413},{"class":87,"line":88},[1414],{"type":51,"tag":85,"props":1415,"children":1416},{},[1417],{"type":57,"value":1418},"import com.azure.data.appconfiguration.models.SettingSelector;\n",{"type":51,"tag":85,"props":1420,"children":1421},{"class":87,"line":97},[1422],{"type":51,"tag":85,"props":1423,"children":1424},{},[1425],{"type":57,"value":1426},"import com.azure.core.http.rest.PagedIterable;\n",{"type":51,"tag":85,"props":1428,"children":1429},{"class":87,"line":106},[1430],{"type":51,"tag":85,"props":1431,"children":1432},{"emptyLinePlaceholder":243},[1433],{"type":57,"value":246},{"type":51,"tag":85,"props":1435,"children":1436},{"class":87,"line":115},[1437],{"type":51,"tag":85,"props":1438,"children":1439},{},[1440],{"type":57,"value":1441},"SettingSelector selector = new SettingSelector()\n",{"type":51,"tag":85,"props":1443,"children":1444},{"class":87,"line":124},[1445],{"type":51,"tag":85,"props":1446,"children":1447},{},[1448],{"type":57,"value":1449},"    .setKeyFilter(\"app\u002F*\");\n",{"type":51,"tag":85,"props":1451,"children":1452},{"class":87,"line":185},[1453],{"type":51,"tag":85,"props":1454,"children":1455},{"emptyLinePlaceholder":243},[1456],{"type":57,"value":246},{"type":51,"tag":85,"props":1458,"children":1459},{"class":87,"line":194},[1460],{"type":51,"tag":85,"props":1461,"children":1462},{},[1463],{"type":57,"value":1464},"PagedIterable\u003CConfigurationSetting> settings = configClient.listConfigurationSettings(selector);\n",{"type":51,"tag":85,"props":1466,"children":1467},{"class":87,"line":203},[1468],{"type":51,"tag":85,"props":1469,"children":1470},{},[1471],{"type":57,"value":1472},"for (ConfigurationSetting s : settings) {\n",{"type":51,"tag":85,"props":1474,"children":1475},{"class":87,"line":212},[1476],{"type":51,"tag":85,"props":1477,"children":1478},{},[1479],{"type":57,"value":1480},"    System.out.println(s.getKey() + \" = \" + s.getValue());\n",{"type":51,"tag":85,"props":1482,"children":1483},{"class":87,"line":221},[1484],{"type":51,"tag":85,"props":1485,"children":1486},{},[1487],{"type":57,"value":1190},{"type":51,"tag":502,"props":1489,"children":1491},{"id":1490},"list-by-label",[1492],{"type":57,"value":1493},"List by Label",{"type":51,"tag":73,"props":1495,"children":1497},{"className":510,"code":1496,"language":21,"meta":78,"style":78},"SettingSelector selector = new SettingSelector()\n    .setKeyFilter(\"*\")\n    .setLabelFilter(\"Production\");\n\nPagedIterable\u003CConfigurationSetting> settings = configClient.listConfigurationSettings(selector);\n",[1498],{"type":51,"tag":81,"props":1499,"children":1500},{"__ignoreMap":78},[1501,1508,1516,1524,1531],{"type":51,"tag":85,"props":1502,"children":1503},{"class":87,"line":88},[1504],{"type":51,"tag":85,"props":1505,"children":1506},{},[1507],{"type":57,"value":1441},{"type":51,"tag":85,"props":1509,"children":1510},{"class":87,"line":97},[1511],{"type":51,"tag":85,"props":1512,"children":1513},{},[1514],{"type":57,"value":1515},"    .setKeyFilter(\"*\")\n",{"type":51,"tag":85,"props":1517,"children":1518},{"class":87,"line":106},[1519],{"type":51,"tag":85,"props":1520,"children":1521},{},[1522],{"type":57,"value":1523},"    .setLabelFilter(\"Production\");\n",{"type":51,"tag":85,"props":1525,"children":1526},{"class":87,"line":115},[1527],{"type":51,"tag":85,"props":1528,"children":1529},{"emptyLinePlaceholder":243},[1530],{"type":57,"value":246},{"type":51,"tag":85,"props":1532,"children":1533},{"class":87,"line":124},[1534],{"type":51,"tag":85,"props":1535,"children":1536},{},[1537],{"type":57,"value":1464},{"type":51,"tag":502,"props":1539,"children":1541},{"id":1540},"list-by-multiple-keys",[1542],{"type":57,"value":1543},"List by Multiple Keys",{"type":51,"tag":73,"props":1545,"children":1547},{"className":510,"code":1546,"language":21,"meta":78,"style":78},"SettingSelector selector = new SettingSelector()\n    .setKeyFilter(\"app\u002Fdatabase\u002F*,app\u002Fcache\u002F*\");\n\nPagedIterable\u003CConfigurationSetting> settings = configClient.listConfigurationSettings(selector);\n",[1548],{"type":51,"tag":81,"props":1549,"children":1550},{"__ignoreMap":78},[1551,1558,1566,1573],{"type":51,"tag":85,"props":1552,"children":1553},{"class":87,"line":88},[1554],{"type":51,"tag":85,"props":1555,"children":1556},{},[1557],{"type":57,"value":1441},{"type":51,"tag":85,"props":1559,"children":1560},{"class":87,"line":97},[1561],{"type":51,"tag":85,"props":1562,"children":1563},{},[1564],{"type":57,"value":1565},"    .setKeyFilter(\"app\u002Fdatabase\u002F*,app\u002Fcache\u002F*\");\n",{"type":51,"tag":85,"props":1567,"children":1568},{"class":87,"line":106},[1569],{"type":51,"tag":85,"props":1570,"children":1571},{"emptyLinePlaceholder":243},[1572],{"type":57,"value":246},{"type":51,"tag":85,"props":1574,"children":1575},{"class":87,"line":115},[1576],{"type":51,"tag":85,"props":1577,"children":1578},{},[1579],{"type":57,"value":1464},{"type":51,"tag":502,"props":1581,"children":1583},{"id":1582},"list-revisions",[1584],{"type":57,"value":1585},"List Revisions",{"type":51,"tag":73,"props":1587,"children":1589},{"className":510,"code":1588,"language":21,"meta":78,"style":78},"SettingSelector selector = new SettingSelector()\n    .setKeyFilter(\"app\u002Fdatabase\u002Fconnection\");\n\nPagedIterable\u003CConfigurationSetting> revisions = configClient.listRevisions(selector);\nfor (ConfigurationSetting revision : revisions) {\n    System.out.println(\"Value: \" + revision.getValue() + \", Modified: \" + revision.getLastModified());\n}\n",[1590],{"type":51,"tag":81,"props":1591,"children":1592},{"__ignoreMap":78},[1593,1600,1608,1615,1623,1631,1639],{"type":51,"tag":85,"props":1594,"children":1595},{"class":87,"line":88},[1596],{"type":51,"tag":85,"props":1597,"children":1598},{},[1599],{"type":57,"value":1441},{"type":51,"tag":85,"props":1601,"children":1602},{"class":87,"line":97},[1603],{"type":51,"tag":85,"props":1604,"children":1605},{},[1606],{"type":57,"value":1607},"    .setKeyFilter(\"app\u002Fdatabase\u002Fconnection\");\n",{"type":51,"tag":85,"props":1609,"children":1610},{"class":87,"line":106},[1611],{"type":51,"tag":85,"props":1612,"children":1613},{"emptyLinePlaceholder":243},[1614],{"type":57,"value":246},{"type":51,"tag":85,"props":1616,"children":1617},{"class":87,"line":115},[1618],{"type":51,"tag":85,"props":1619,"children":1620},{},[1621],{"type":57,"value":1622},"PagedIterable\u003CConfigurationSetting> revisions = configClient.listRevisions(selector);\n",{"type":51,"tag":85,"props":1624,"children":1625},{"class":87,"line":124},[1626],{"type":51,"tag":85,"props":1627,"children":1628},{},[1629],{"type":57,"value":1630},"for (ConfigurationSetting revision : revisions) {\n",{"type":51,"tag":85,"props":1632,"children":1633},{"class":87,"line":185},[1634],{"type":51,"tag":85,"props":1635,"children":1636},{},[1637],{"type":57,"value":1638},"    System.out.println(\"Value: \" + revision.getValue() + \", Modified: \" + revision.getLastModified());\n",{"type":51,"tag":85,"props":1640,"children":1641},{"class":87,"line":194},[1642],{"type":51,"tag":85,"props":1643,"children":1644},{},[1645],{"type":57,"value":1190},{"type":51,"tag":66,"props":1647,"children":1648},{"id":24},[1649],{"type":57,"value":23},{"type":51,"tag":502,"props":1651,"children":1653},{"id":1652},"create-feature-flag",[1654],{"type":57,"value":1655},"Create Feature Flag",{"type":51,"tag":73,"props":1657,"children":1659},{"className":510,"code":1658,"language":21,"meta":78,"style":78},"import com.azure.data.appconfiguration.models.FeatureFlagConfigurationSetting;\nimport com.azure.data.appconfiguration.models.FeatureFlagFilter;\nimport java.util.Arrays;\n\nFeatureFlagFilter percentageFilter = new FeatureFlagFilter(\"Microsoft.Percentage\")\n    .addParameter(\"Value\", 50);\n\nFeatureFlagConfigurationSetting featureFlag = new FeatureFlagConfigurationSetting(\"beta-feature\", true)\n    .setDescription(\"Beta feature rollout\")\n    .setClientFilters(Arrays.asList(percentageFilter));\n\nFeatureFlagConfigurationSetting created = (FeatureFlagConfigurationSetting)\n    configClient.addConfigurationSetting(featureFlag);\n",[1660],{"type":51,"tag":81,"props":1661,"children":1662},{"__ignoreMap":78},[1663,1671,1679,1687,1694,1702,1710,1717,1725,1733,1741,1748,1756],{"type":51,"tag":85,"props":1664,"children":1665},{"class":87,"line":88},[1666],{"type":51,"tag":85,"props":1667,"children":1668},{},[1669],{"type":57,"value":1670},"import com.azure.data.appconfiguration.models.FeatureFlagConfigurationSetting;\n",{"type":51,"tag":85,"props":1672,"children":1673},{"class":87,"line":97},[1674],{"type":51,"tag":85,"props":1675,"children":1676},{},[1677],{"type":57,"value":1678},"import com.azure.data.appconfiguration.models.FeatureFlagFilter;\n",{"type":51,"tag":85,"props":1680,"children":1681},{"class":87,"line":106},[1682],{"type":51,"tag":85,"props":1683,"children":1684},{},[1685],{"type":57,"value":1686},"import java.util.Arrays;\n",{"type":51,"tag":85,"props":1688,"children":1689},{"class":87,"line":115},[1690],{"type":51,"tag":85,"props":1691,"children":1692},{"emptyLinePlaceholder":243},[1693],{"type":57,"value":246},{"type":51,"tag":85,"props":1695,"children":1696},{"class":87,"line":124},[1697],{"type":51,"tag":85,"props":1698,"children":1699},{},[1700],{"type":57,"value":1701},"FeatureFlagFilter percentageFilter = new FeatureFlagFilter(\"Microsoft.Percentage\")\n",{"type":51,"tag":85,"props":1703,"children":1704},{"class":87,"line":185},[1705],{"type":51,"tag":85,"props":1706,"children":1707},{},[1708],{"type":57,"value":1709},"    .addParameter(\"Value\", 50);\n",{"type":51,"tag":85,"props":1711,"children":1712},{"class":87,"line":194},[1713],{"type":51,"tag":85,"props":1714,"children":1715},{"emptyLinePlaceholder":243},[1716],{"type":57,"value":246},{"type":51,"tag":85,"props":1718,"children":1719},{"class":87,"line":203},[1720],{"type":51,"tag":85,"props":1721,"children":1722},{},[1723],{"type":57,"value":1724},"FeatureFlagConfigurationSetting featureFlag = new FeatureFlagConfigurationSetting(\"beta-feature\", true)\n",{"type":51,"tag":85,"props":1726,"children":1727},{"class":87,"line":212},[1728],{"type":51,"tag":85,"props":1729,"children":1730},{},[1731],{"type":57,"value":1732},"    .setDescription(\"Beta feature rollout\")\n",{"type":51,"tag":85,"props":1734,"children":1735},{"class":87,"line":221},[1736],{"type":51,"tag":85,"props":1737,"children":1738},{},[1739],{"type":57,"value":1740},"    .setClientFilters(Arrays.asList(percentageFilter));\n",{"type":51,"tag":85,"props":1742,"children":1743},{"class":87,"line":230},[1744],{"type":51,"tag":85,"props":1745,"children":1746},{"emptyLinePlaceholder":243},[1747],{"type":57,"value":246},{"type":51,"tag":85,"props":1749,"children":1750},{"class":87,"line":239},[1751],{"type":51,"tag":85,"props":1752,"children":1753},{},[1754],{"type":57,"value":1755},"FeatureFlagConfigurationSetting created = (FeatureFlagConfigurationSetting)\n",{"type":51,"tag":85,"props":1757,"children":1758},{"class":87,"line":249},[1759],{"type":51,"tag":85,"props":1760,"children":1761},{},[1762],{"type":57,"value":1763},"    configClient.addConfigurationSetting(featureFlag);\n",{"type":51,"tag":502,"props":1765,"children":1767},{"id":1766},"get-feature-flag",[1768],{"type":57,"value":1769},"Get Feature Flag",{"type":51,"tag":73,"props":1771,"children":1773},{"className":510,"code":1772,"language":21,"meta":78,"style":78},"FeatureFlagConfigurationSetting flag = (FeatureFlagConfigurationSetting)\n    configClient.getConfigurationSetting(featureFlag);\n\nSystem.out.println(\"Feature: \" + flag.getFeatureId());\nSystem.out.println(\"Enabled: \" + flag.isEnabled());\nSystem.out.println(\"Filters: \" + flag.getClientFilters());\n",[1774],{"type":51,"tag":81,"props":1775,"children":1776},{"__ignoreMap":78},[1777,1785,1793,1800,1808,1816],{"type":51,"tag":85,"props":1778,"children":1779},{"class":87,"line":88},[1780],{"type":51,"tag":85,"props":1781,"children":1782},{},[1783],{"type":57,"value":1784},"FeatureFlagConfigurationSetting flag = (FeatureFlagConfigurationSetting)\n",{"type":51,"tag":85,"props":1786,"children":1787},{"class":87,"line":97},[1788],{"type":51,"tag":85,"props":1789,"children":1790},{},[1791],{"type":57,"value":1792},"    configClient.getConfigurationSetting(featureFlag);\n",{"type":51,"tag":85,"props":1794,"children":1795},{"class":87,"line":106},[1796],{"type":51,"tag":85,"props":1797,"children":1798},{"emptyLinePlaceholder":243},[1799],{"type":57,"value":246},{"type":51,"tag":85,"props":1801,"children":1802},{"class":87,"line":115},[1803],{"type":51,"tag":85,"props":1804,"children":1805},{},[1806],{"type":57,"value":1807},"System.out.println(\"Feature: \" + flag.getFeatureId());\n",{"type":51,"tag":85,"props":1809,"children":1810},{"class":87,"line":124},[1811],{"type":51,"tag":85,"props":1812,"children":1813},{},[1814],{"type":57,"value":1815},"System.out.println(\"Enabled: \" + flag.isEnabled());\n",{"type":51,"tag":85,"props":1817,"children":1818},{"class":87,"line":185},[1819],{"type":51,"tag":85,"props":1820,"children":1821},{},[1822],{"type":57,"value":1823},"System.out.println(\"Filters: \" + flag.getClientFilters());\n",{"type":51,"tag":502,"props":1825,"children":1827},{"id":1826},"update-feature-flag",[1828],{"type":57,"value":1829},"Update Feature Flag",{"type":51,"tag":73,"props":1831,"children":1833},{"className":510,"code":1832,"language":21,"meta":78,"style":78},"featureFlag.setEnabled(false);\nFeatureFlagConfigurationSetting updated = (FeatureFlagConfigurationSetting)\n    configClient.setConfigurationSetting(featureFlag);\n",[1834],{"type":51,"tag":81,"props":1835,"children":1836},{"__ignoreMap":78},[1837,1845,1853],{"type":51,"tag":85,"props":1838,"children":1839},{"class":87,"line":88},[1840],{"type":51,"tag":85,"props":1841,"children":1842},{},[1843],{"type":57,"value":1844},"featureFlag.setEnabled(false);\n",{"type":51,"tag":85,"props":1846,"children":1847},{"class":87,"line":97},[1848],{"type":51,"tag":85,"props":1849,"children":1850},{},[1851],{"type":57,"value":1852},"FeatureFlagConfigurationSetting updated = (FeatureFlagConfigurationSetting)\n",{"type":51,"tag":85,"props":1854,"children":1855},{"class":87,"line":106},[1856],{"type":51,"tag":85,"props":1857,"children":1858},{},[1859],{"type":57,"value":1860},"    configClient.setConfigurationSetting(featureFlag);\n",{"type":51,"tag":66,"props":1862,"children":1864},{"id":1863},"secret-references",[1865],{"type":57,"value":1866},"Secret References",{"type":51,"tag":502,"props":1868,"children":1870},{"id":1869},"create-secret-reference",[1871],{"type":57,"value":1872},"Create Secret Reference",{"type":51,"tag":73,"props":1874,"children":1876},{"className":510,"code":1875,"language":21,"meta":78,"style":78},"import com.azure.data.appconfiguration.models.SecretReferenceConfigurationSetting;\n\nSecretReferenceConfigurationSetting secretRef = new SecretReferenceConfigurationSetting(\n    \"app\u002Fsecrets\u002Fapi-key\",\n    \"https:\u002F\u002Fmyvault.vault.azure.net\u002Fsecrets\u002Fapi-key\"\n);\n\nSecretReferenceConfigurationSetting created = (SecretReferenceConfigurationSetting)\n    configClient.addConfigurationSetting(secretRef);\n",[1877],{"type":51,"tag":81,"props":1878,"children":1879},{"__ignoreMap":78},[1880,1888,1895,1903,1911,1919,1926,1933,1941],{"type":51,"tag":85,"props":1881,"children":1882},{"class":87,"line":88},[1883],{"type":51,"tag":85,"props":1884,"children":1885},{},[1886],{"type":57,"value":1887},"import com.azure.data.appconfiguration.models.SecretReferenceConfigurationSetting;\n",{"type":51,"tag":85,"props":1889,"children":1890},{"class":87,"line":97},[1891],{"type":51,"tag":85,"props":1892,"children":1893},{"emptyLinePlaceholder":243},[1894],{"type":57,"value":246},{"type":51,"tag":85,"props":1896,"children":1897},{"class":87,"line":106},[1898],{"type":51,"tag":85,"props":1899,"children":1900},{},[1901],{"type":57,"value":1902},"SecretReferenceConfigurationSetting secretRef = new SecretReferenceConfigurationSetting(\n",{"type":51,"tag":85,"props":1904,"children":1905},{"class":87,"line":115},[1906],{"type":51,"tag":85,"props":1907,"children":1908},{},[1909],{"type":57,"value":1910},"    \"app\u002Fsecrets\u002Fapi-key\",\n",{"type":51,"tag":85,"props":1912,"children":1913},{"class":87,"line":124},[1914],{"type":51,"tag":85,"props":1915,"children":1916},{},[1917],{"type":57,"value":1918},"    \"https:\u002F\u002Fmyvault.vault.azure.net\u002Fsecrets\u002Fapi-key\"\n",{"type":51,"tag":85,"props":1920,"children":1921},{"class":87,"line":185},[1922],{"type":51,"tag":85,"props":1923,"children":1924},{},[1925],{"type":57,"value":937},{"type":51,"tag":85,"props":1927,"children":1928},{"class":87,"line":194},[1929],{"type":51,"tag":85,"props":1930,"children":1931},{"emptyLinePlaceholder":243},[1932],{"type":57,"value":246},{"type":51,"tag":85,"props":1934,"children":1935},{"class":87,"line":203},[1936],{"type":51,"tag":85,"props":1937,"children":1938},{},[1939],{"type":57,"value":1940},"SecretReferenceConfigurationSetting created = (SecretReferenceConfigurationSetting)\n",{"type":51,"tag":85,"props":1942,"children":1943},{"class":87,"line":212},[1944],{"type":51,"tag":85,"props":1945,"children":1946},{},[1947],{"type":57,"value":1948},"    configClient.addConfigurationSetting(secretRef);\n",{"type":51,"tag":502,"props":1950,"children":1952},{"id":1951},"get-secret-reference",[1953],{"type":57,"value":1954},"Get Secret Reference",{"type":51,"tag":73,"props":1956,"children":1958},{"className":510,"code":1957,"language":21,"meta":78,"style":78},"SecretReferenceConfigurationSetting ref = (SecretReferenceConfigurationSetting)\n    configClient.getConfigurationSetting(secretRef);\n\nSystem.out.println(\"Secret URI: \" + ref.getSecretId());\n",[1959],{"type":51,"tag":81,"props":1960,"children":1961},{"__ignoreMap":78},[1962,1970,1978,1985],{"type":51,"tag":85,"props":1963,"children":1964},{"class":87,"line":88},[1965],{"type":51,"tag":85,"props":1966,"children":1967},{},[1968],{"type":57,"value":1969},"SecretReferenceConfigurationSetting ref = (SecretReferenceConfigurationSetting)\n",{"type":51,"tag":85,"props":1971,"children":1972},{"class":87,"line":97},[1973],{"type":51,"tag":85,"props":1974,"children":1975},{},[1976],{"type":57,"value":1977},"    configClient.getConfigurationSetting(secretRef);\n",{"type":51,"tag":85,"props":1979,"children":1980},{"class":87,"line":106},[1981],{"type":51,"tag":85,"props":1982,"children":1983},{"emptyLinePlaceholder":243},[1984],{"type":57,"value":246},{"type":51,"tag":85,"props":1986,"children":1987},{"class":87,"line":115},[1988],{"type":51,"tag":85,"props":1989,"children":1990},{},[1991],{"type":57,"value":1992},"System.out.println(\"Secret URI: \" + ref.getSecretId());\n",{"type":51,"tag":66,"props":1994,"children":1996},{"id":1995},"read-only-settings",[1997],{"type":57,"value":1998},"Read-Only Settings",{"type":51,"tag":502,"props":2000,"children":2002},{"id":2001},"set-read-only",[2003],{"type":57,"value":2004},"Set Read-Only",{"type":51,"tag":73,"props":2006,"children":2008},{"className":510,"code":2007,"language":21,"meta":78,"style":78},"ConfigurationSetting readOnly = configClient.setReadOnly(\n    \"app\u002Fcritical\u002Fsetting\", \n    \"Production\", \n    true\n);\n",[2009],{"type":51,"tag":81,"props":2010,"children":2011},{"__ignoreMap":78},[2012,2020,2028,2035,2043],{"type":51,"tag":85,"props":2013,"children":2014},{"class":87,"line":88},[2015],{"type":51,"tag":85,"props":2016,"children":2017},{},[2018],{"type":57,"value":2019},"ConfigurationSetting readOnly = configClient.setReadOnly(\n",{"type":51,"tag":85,"props":2021,"children":2022},{"class":87,"line":97},[2023],{"type":51,"tag":85,"props":2024,"children":2025},{},[2026],{"type":57,"value":2027},"    \"app\u002Fcritical\u002Fsetting\", \n",{"type":51,"tag":85,"props":2029,"children":2030},{"class":87,"line":106},[2031],{"type":51,"tag":85,"props":2032,"children":2033},{},[2034],{"type":57,"value":921},{"type":51,"tag":85,"props":2036,"children":2037},{"class":87,"line":115},[2038],{"type":51,"tag":85,"props":2039,"children":2040},{},[2041],{"type":57,"value":2042},"    true\n",{"type":51,"tag":85,"props":2044,"children":2045},{"class":87,"line":124},[2046],{"type":51,"tag":85,"props":2047,"children":2048},{},[2049],{"type":57,"value":937},{"type":51,"tag":502,"props":2051,"children":2053},{"id":2052},"clear-read-only",[2054],{"type":57,"value":2055},"Clear Read-Only",{"type":51,"tag":73,"props":2057,"children":2059},{"className":510,"code":2058,"language":21,"meta":78,"style":78},"ConfigurationSetting writable = configClient.setReadOnly(\n    \"app\u002Fcritical\u002Fsetting\", \n    \"Production\", \n    false\n);\n",[2060],{"type":51,"tag":81,"props":2061,"children":2062},{"__ignoreMap":78},[2063,2071,2078,2085,2093],{"type":51,"tag":85,"props":2064,"children":2065},{"class":87,"line":88},[2066],{"type":51,"tag":85,"props":2067,"children":2068},{},[2069],{"type":57,"value":2070},"ConfigurationSetting writable = configClient.setReadOnly(\n",{"type":51,"tag":85,"props":2072,"children":2073},{"class":87,"line":97},[2074],{"type":51,"tag":85,"props":2075,"children":2076},{},[2077],{"type":57,"value":2027},{"type":51,"tag":85,"props":2079,"children":2080},{"class":87,"line":106},[2081],{"type":51,"tag":85,"props":2082,"children":2083},{},[2084],{"type":57,"value":921},{"type":51,"tag":85,"props":2086,"children":2087},{"class":87,"line":115},[2088],{"type":51,"tag":85,"props":2089,"children":2090},{},[2091],{"type":57,"value":2092},"    false\n",{"type":51,"tag":85,"props":2094,"children":2095},{"class":87,"line":124},[2096],{"type":51,"tag":85,"props":2097,"children":2098},{},[2099],{"type":57,"value":937},{"type":51,"tag":66,"props":2101,"children":2103},{"id":2102},"snapshots",[2104],{"type":57,"value":2105},"Snapshots",{"type":51,"tag":502,"props":2107,"children":2109},{"id":2108},"create-snapshot",[2110],{"type":57,"value":2111},"Create Snapshot",{"type":51,"tag":73,"props":2113,"children":2115},{"className":510,"code":2114,"language":21,"meta":78,"style":78},"import com.azure.data.appconfiguration.models.ConfigurationSnapshot;\nimport com.azure.data.appconfiguration.models.ConfigurationSettingsFilter;\nimport com.azure.core.util.polling.SyncPoller;\nimport com.azure.core.util.polling.PollOperationDetails;\n\nList\u003CConfigurationSettingsFilter> filters = new ArrayList\u003C>();\nfilters.add(new ConfigurationSettingsFilter(\"app\u002F*\"));\n\nSyncPoller\u003CPollOperationDetails, ConfigurationSnapshot> poller = configClient.beginCreateSnapshot(\n    \"release-v1.0\",\n    new ConfigurationSnapshot(filters),\n    Context.NONE\n);\npoller.setPollInterval(Duration.ofSeconds(10));\npoller.waitForCompletion();\n\nConfigurationSnapshot snapshot = poller.getFinalResult();\nSystem.out.println(\"Snapshot: \" + snapshot.getName() + \", Status: \" + snapshot.getStatus());\n",[2116],{"type":51,"tag":81,"props":2117,"children":2118},{"__ignoreMap":78},[2119,2127,2135,2143,2151,2158,2166,2174,2181,2189,2197,2205,2212,2219,2227,2235,2242,2250],{"type":51,"tag":85,"props":2120,"children":2121},{"class":87,"line":88},[2122],{"type":51,"tag":85,"props":2123,"children":2124},{},[2125],{"type":57,"value":2126},"import com.azure.data.appconfiguration.models.ConfigurationSnapshot;\n",{"type":51,"tag":85,"props":2128,"children":2129},{"class":87,"line":97},[2130],{"type":51,"tag":85,"props":2131,"children":2132},{},[2133],{"type":57,"value":2134},"import com.azure.data.appconfiguration.models.ConfigurationSettingsFilter;\n",{"type":51,"tag":85,"props":2136,"children":2137},{"class":87,"line":106},[2138],{"type":51,"tag":85,"props":2139,"children":2140},{},[2141],{"type":57,"value":2142},"import com.azure.core.util.polling.SyncPoller;\n",{"type":51,"tag":85,"props":2144,"children":2145},{"class":87,"line":115},[2146],{"type":51,"tag":85,"props":2147,"children":2148},{},[2149],{"type":57,"value":2150},"import com.azure.core.util.polling.PollOperationDetails;\n",{"type":51,"tag":85,"props":2152,"children":2153},{"class":87,"line":124},[2154],{"type":51,"tag":85,"props":2155,"children":2156},{"emptyLinePlaceholder":243},[2157],{"type":57,"value":246},{"type":51,"tag":85,"props":2159,"children":2160},{"class":87,"line":185},[2161],{"type":51,"tag":85,"props":2162,"children":2163},{},[2164],{"type":57,"value":2165},"List\u003CConfigurationSettingsFilter> filters = new ArrayList\u003C>();\n",{"type":51,"tag":85,"props":2167,"children":2168},{"class":87,"line":194},[2169],{"type":51,"tag":85,"props":2170,"children":2171},{},[2172],{"type":57,"value":2173},"filters.add(new ConfigurationSettingsFilter(\"app\u002F*\"));\n",{"type":51,"tag":85,"props":2175,"children":2176},{"class":87,"line":203},[2177],{"type":51,"tag":85,"props":2178,"children":2179},{"emptyLinePlaceholder":243},[2180],{"type":57,"value":246},{"type":51,"tag":85,"props":2182,"children":2183},{"class":87,"line":212},[2184],{"type":51,"tag":85,"props":2185,"children":2186},{},[2187],{"type":57,"value":2188},"SyncPoller\u003CPollOperationDetails, ConfigurationSnapshot> poller = configClient.beginCreateSnapshot(\n",{"type":51,"tag":85,"props":2190,"children":2191},{"class":87,"line":221},[2192],{"type":51,"tag":85,"props":2193,"children":2194},{},[2195],{"type":57,"value":2196},"    \"release-v1.0\",\n",{"type":51,"tag":85,"props":2198,"children":2199},{"class":87,"line":230},[2200],{"type":51,"tag":85,"props":2201,"children":2202},{},[2203],{"type":57,"value":2204},"    new ConfigurationSnapshot(filters),\n",{"type":51,"tag":85,"props":2206,"children":2207},{"class":87,"line":239},[2208],{"type":51,"tag":85,"props":2209,"children":2210},{},[2211],{"type":57,"value":1136},{"type":51,"tag":85,"props":2213,"children":2214},{"class":87,"line":249},[2215],{"type":51,"tag":85,"props":2216,"children":2217},{},[2218],{"type":57,"value":937},{"type":51,"tag":85,"props":2220,"children":2221},{"class":87,"line":258},[2222],{"type":51,"tag":85,"props":2223,"children":2224},{},[2225],{"type":57,"value":2226},"poller.setPollInterval(Duration.ofSeconds(10));\n",{"type":51,"tag":85,"props":2228,"children":2229},{"class":87,"line":267},[2230],{"type":51,"tag":85,"props":2231,"children":2232},{},[2233],{"type":57,"value":2234},"poller.waitForCompletion();\n",{"type":51,"tag":85,"props":2236,"children":2237},{"class":87,"line":276},[2238],{"type":51,"tag":85,"props":2239,"children":2240},{"emptyLinePlaceholder":243},[2241],{"type":57,"value":246},{"type":51,"tag":85,"props":2243,"children":2244},{"class":87,"line":285},[2245],{"type":51,"tag":85,"props":2246,"children":2247},{},[2248],{"type":57,"value":2249},"ConfigurationSnapshot snapshot = poller.getFinalResult();\n",{"type":51,"tag":85,"props":2251,"children":2252},{"class":87,"line":294},[2253],{"type":51,"tag":85,"props":2254,"children":2255},{},[2256],{"type":57,"value":2257},"System.out.println(\"Snapshot: \" + snapshot.getName() + \", Status: \" + snapshot.getStatus());\n",{"type":51,"tag":502,"props":2259,"children":2261},{"id":2260},"get-snapshot",[2262],{"type":57,"value":2263},"Get Snapshot",{"type":51,"tag":73,"props":2265,"children":2267},{"className":510,"code":2266,"language":21,"meta":78,"style":78},"ConfigurationSnapshot snapshot = configClient.getSnapshot(\"release-v1.0\");\nSystem.out.println(\"Created: \" + snapshot.getCreatedAt());\nSystem.out.println(\"Items: \" + snapshot.getItemCount());\n",[2268],{"type":51,"tag":81,"props":2269,"children":2270},{"__ignoreMap":78},[2271,2279,2287],{"type":51,"tag":85,"props":2272,"children":2273},{"class":87,"line":88},[2274],{"type":51,"tag":85,"props":2275,"children":2276},{},[2277],{"type":57,"value":2278},"ConfigurationSnapshot snapshot = configClient.getSnapshot(\"release-v1.0\");\n",{"type":51,"tag":85,"props":2280,"children":2281},{"class":87,"line":97},[2282],{"type":51,"tag":85,"props":2283,"children":2284},{},[2285],{"type":57,"value":2286},"System.out.println(\"Created: \" + snapshot.getCreatedAt());\n",{"type":51,"tag":85,"props":2288,"children":2289},{"class":87,"line":106},[2290],{"type":51,"tag":85,"props":2291,"children":2292},{},[2293],{"type":57,"value":2294},"System.out.println(\"Items: \" + snapshot.getItemCount());\n",{"type":51,"tag":502,"props":2296,"children":2298},{"id":2297},"list-settings-in-snapshot",[2299],{"type":57,"value":2300},"List Settings in Snapshot",{"type":51,"tag":73,"props":2302,"children":2304},{"className":510,"code":2303,"language":21,"meta":78,"style":78},"PagedIterable\u003CConfigurationSetting> settings = \n    configClient.listConfigurationSettingsForSnapshot(\"release-v1.0\");\n\nfor (ConfigurationSetting setting : settings) {\n    System.out.println(setting.getKey() + \" = \" + setting.getValue());\n}\n",[2305],{"type":51,"tag":81,"props":2306,"children":2307},{"__ignoreMap":78},[2308,2316,2324,2331,2339,2347],{"type":51,"tag":85,"props":2309,"children":2310},{"class":87,"line":88},[2311],{"type":51,"tag":85,"props":2312,"children":2313},{},[2314],{"type":57,"value":2315},"PagedIterable\u003CConfigurationSetting> settings = \n",{"type":51,"tag":85,"props":2317,"children":2318},{"class":87,"line":97},[2319],{"type":51,"tag":85,"props":2320,"children":2321},{},[2322],{"type":57,"value":2323},"    configClient.listConfigurationSettingsForSnapshot(\"release-v1.0\");\n",{"type":51,"tag":85,"props":2325,"children":2326},{"class":87,"line":106},[2327],{"type":51,"tag":85,"props":2328,"children":2329},{"emptyLinePlaceholder":243},[2330],{"type":57,"value":246},{"type":51,"tag":85,"props":2332,"children":2333},{"class":87,"line":115},[2334],{"type":51,"tag":85,"props":2335,"children":2336},{},[2337],{"type":57,"value":2338},"for (ConfigurationSetting setting : settings) {\n",{"type":51,"tag":85,"props":2340,"children":2341},{"class":87,"line":124},[2342],{"type":51,"tag":85,"props":2343,"children":2344},{},[2345],{"type":57,"value":2346},"    System.out.println(setting.getKey() + \" = \" + setting.getValue());\n",{"type":51,"tag":85,"props":2348,"children":2349},{"class":87,"line":185},[2350],{"type":51,"tag":85,"props":2351,"children":2352},{},[2353],{"type":57,"value":1190},{"type":51,"tag":502,"props":2355,"children":2357},{"id":2356},"archive-snapshot",[2358],{"type":57,"value":2359},"Archive Snapshot",{"type":51,"tag":73,"props":2361,"children":2363},{"className":510,"code":2362,"language":21,"meta":78,"style":78},"ConfigurationSnapshot archived = configClient.archiveSnapshot(\"release-v1.0\");\nSystem.out.println(\"Status: \" + archived.getStatus()); \u002F\u002F archived\n",[2364],{"type":51,"tag":81,"props":2365,"children":2366},{"__ignoreMap":78},[2367,2375],{"type":51,"tag":85,"props":2368,"children":2369},{"class":87,"line":88},[2370],{"type":51,"tag":85,"props":2371,"children":2372},{},[2373],{"type":57,"value":2374},"ConfigurationSnapshot archived = configClient.archiveSnapshot(\"release-v1.0\");\n",{"type":51,"tag":85,"props":2376,"children":2377},{"class":87,"line":97},[2378],{"type":51,"tag":85,"props":2379,"children":2380},{},[2381],{"type":57,"value":2382},"System.out.println(\"Status: \" + archived.getStatus()); \u002F\u002F archived\n",{"type":51,"tag":502,"props":2384,"children":2386},{"id":2385},"recover-snapshot",[2387],{"type":57,"value":2388},"Recover Snapshot",{"type":51,"tag":73,"props":2390,"children":2392},{"className":510,"code":2391,"language":21,"meta":78,"style":78},"ConfigurationSnapshot recovered = configClient.recoverSnapshot(\"release-v1.0\");\nSystem.out.println(\"Status: \" + recovered.getStatus()); \u002F\u002F ready\n",[2393],{"type":51,"tag":81,"props":2394,"children":2395},{"__ignoreMap":78},[2396,2404],{"type":51,"tag":85,"props":2397,"children":2398},{"class":87,"line":88},[2399],{"type":51,"tag":85,"props":2400,"children":2401},{},[2402],{"type":57,"value":2403},"ConfigurationSnapshot recovered = configClient.recoverSnapshot(\"release-v1.0\");\n",{"type":51,"tag":85,"props":2405,"children":2406},{"class":87,"line":97},[2407],{"type":51,"tag":85,"props":2408,"children":2409},{},[2410],{"type":57,"value":2411},"System.out.println(\"Status: \" + recovered.getStatus()); \u002F\u002F ready\n",{"type":51,"tag":502,"props":2413,"children":2415},{"id":2414},"list-all-snapshots",[2416],{"type":57,"value":2417},"List All Snapshots",{"type":51,"tag":73,"props":2419,"children":2421},{"className":510,"code":2420,"language":21,"meta":78,"style":78},"import com.azure.data.appconfiguration.models.SnapshotSelector;\n\nSnapshotSelector selector = new SnapshotSelector().setNameFilter(\"release-*\");\nPagedIterable\u003CConfigurationSnapshot> snapshots = configClient.listSnapshots(selector);\n\nfor (ConfigurationSnapshot snap : snapshots) {\n    System.out.println(snap.getName() + \" - \" + snap.getStatus());\n}\n",[2422],{"type":51,"tag":81,"props":2423,"children":2424},{"__ignoreMap":78},[2425,2433,2440,2448,2456,2463,2471,2479],{"type":51,"tag":85,"props":2426,"children":2427},{"class":87,"line":88},[2428],{"type":51,"tag":85,"props":2429,"children":2430},{},[2431],{"type":57,"value":2432},"import com.azure.data.appconfiguration.models.SnapshotSelector;\n",{"type":51,"tag":85,"props":2434,"children":2435},{"class":87,"line":97},[2436],{"type":51,"tag":85,"props":2437,"children":2438},{"emptyLinePlaceholder":243},[2439],{"type":57,"value":246},{"type":51,"tag":85,"props":2441,"children":2442},{"class":87,"line":106},[2443],{"type":51,"tag":85,"props":2444,"children":2445},{},[2446],{"type":57,"value":2447},"SnapshotSelector selector = new SnapshotSelector().setNameFilter(\"release-*\");\n",{"type":51,"tag":85,"props":2449,"children":2450},{"class":87,"line":115},[2451],{"type":51,"tag":85,"props":2452,"children":2453},{},[2454],{"type":57,"value":2455},"PagedIterable\u003CConfigurationSnapshot> snapshots = configClient.listSnapshots(selector);\n",{"type":51,"tag":85,"props":2457,"children":2458},{"class":87,"line":124},[2459],{"type":51,"tag":85,"props":2460,"children":2461},{"emptyLinePlaceholder":243},[2462],{"type":57,"value":246},{"type":51,"tag":85,"props":2464,"children":2465},{"class":87,"line":185},[2466],{"type":51,"tag":85,"props":2467,"children":2468},{},[2469],{"type":57,"value":2470},"for (ConfigurationSnapshot snap : snapshots) {\n",{"type":51,"tag":85,"props":2472,"children":2473},{"class":87,"line":194},[2474],{"type":51,"tag":85,"props":2475,"children":2476},{},[2477],{"type":57,"value":2478},"    System.out.println(snap.getName() + \" - \" + snap.getStatus());\n",{"type":51,"tag":85,"props":2480,"children":2481},{"class":87,"line":203},[2482],{"type":51,"tag":85,"props":2483,"children":2484},{},[2485],{"type":57,"value":1190},{"type":51,"tag":66,"props":2487,"children":2489},{"id":2488},"labels",[2490],{"type":57,"value":2491},"Labels",{"type":51,"tag":502,"props":2493,"children":2495},{"id":2494},"list-labels",[2496],{"type":57,"value":2497},"List Labels",{"type":51,"tag":73,"props":2499,"children":2501},{"className":510,"code":2500,"language":21,"meta":78,"style":78},"import com.azure.data.appconfiguration.models.SettingLabelSelector;\n\nconfigClient.listLabels(new SettingLabelSelector().setNameFilter(\"*\"))\n    .forEach(label -> System.out.println(\"Label: \" + label.getName()));\n",[2502],{"type":51,"tag":81,"props":2503,"children":2504},{"__ignoreMap":78},[2505,2513,2520,2528],{"type":51,"tag":85,"props":2506,"children":2507},{"class":87,"line":88},[2508],{"type":51,"tag":85,"props":2509,"children":2510},{},[2511],{"type":57,"value":2512},"import com.azure.data.appconfiguration.models.SettingLabelSelector;\n",{"type":51,"tag":85,"props":2514,"children":2515},{"class":87,"line":97},[2516],{"type":51,"tag":85,"props":2517,"children":2518},{"emptyLinePlaceholder":243},[2519],{"type":57,"value":246},{"type":51,"tag":85,"props":2521,"children":2522},{"class":87,"line":106},[2523],{"type":51,"tag":85,"props":2524,"children":2525},{},[2526],{"type":57,"value":2527},"configClient.listLabels(new SettingLabelSelector().setNameFilter(\"*\"))\n",{"type":51,"tag":85,"props":2529,"children":2530},{"class":87,"line":115},[2531],{"type":51,"tag":85,"props":2532,"children":2533},{},[2534],{"type":57,"value":2535},"    .forEach(label -> System.out.println(\"Label: \" + label.getName()));\n",{"type":51,"tag":66,"props":2537,"children":2539},{"id":2538},"async-operations",[2540],{"type":57,"value":2541},"Async Operations",{"type":51,"tag":73,"props":2543,"children":2545},{"className":510,"code":2544,"language":21,"meta":78,"style":78},"ConfigurationAsyncClient asyncClient = new ConfigurationClientBuilder()\n    .connectionString(connectionString)\n    .buildAsyncClient();\n\n\u002F\u002F Async list with reactive streams\nasyncClient.listConfigurationSettings(new SettingSelector().setLabelFilter(\"Production\"))\n    .subscribe(\n        setting -> System.out.println(setting.getKey() + \" = \" + setting.getValue()),\n        error -> System.err.println(\"Error: \" + error.getMessage()),\n        () -> System.out.println(\"Completed\")\n    );\n",[2546],{"type":51,"tag":81,"props":2547,"children":2548},{"__ignoreMap":78},[2549,2556,2563,2570,2577,2585,2593,2601,2609,2617,2625],{"type":51,"tag":85,"props":2550,"children":2551},{"class":87,"line":88},[2552],{"type":51,"tag":85,"props":2553,"children":2554},{},[2555],{"type":57,"value":598},{"type":51,"tag":85,"props":2557,"children":2558},{"class":87,"line":97},[2559],{"type":51,"tag":85,"props":2560,"children":2561},{},[2562],{"type":57,"value":606},{"type":51,"tag":85,"props":2564,"children":2565},{"class":87,"line":106},[2566],{"type":51,"tag":85,"props":2567,"children":2568},{},[2569],{"type":57,"value":614},{"type":51,"tag":85,"props":2571,"children":2572},{"class":87,"line":115},[2573],{"type":51,"tag":85,"props":2574,"children":2575},{"emptyLinePlaceholder":243},[2576],{"type":57,"value":246},{"type":51,"tag":85,"props":2578,"children":2579},{"class":87,"line":124},[2580],{"type":51,"tag":85,"props":2581,"children":2582},{},[2583],{"type":57,"value":2584},"\u002F\u002F Async list with reactive streams\n",{"type":51,"tag":85,"props":2586,"children":2587},{"class":87,"line":185},[2588],{"type":51,"tag":85,"props":2589,"children":2590},{},[2591],{"type":57,"value":2592},"asyncClient.listConfigurationSettings(new SettingSelector().setLabelFilter(\"Production\"))\n",{"type":51,"tag":85,"props":2594,"children":2595},{"class":87,"line":194},[2596],{"type":51,"tag":85,"props":2597,"children":2598},{},[2599],{"type":57,"value":2600},"    .subscribe(\n",{"type":51,"tag":85,"props":2602,"children":2603},{"class":87,"line":203},[2604],{"type":51,"tag":85,"props":2605,"children":2606},{},[2607],{"type":57,"value":2608},"        setting -> System.out.println(setting.getKey() + \" = \" + setting.getValue()),\n",{"type":51,"tag":85,"props":2610,"children":2611},{"class":87,"line":212},[2612],{"type":51,"tag":85,"props":2613,"children":2614},{},[2615],{"type":57,"value":2616},"        error -> System.err.println(\"Error: \" + error.getMessage()),\n",{"type":51,"tag":85,"props":2618,"children":2619},{"class":87,"line":221},[2620],{"type":51,"tag":85,"props":2621,"children":2622},{},[2623],{"type":57,"value":2624},"        () -> System.out.println(\"Completed\")\n",{"type":51,"tag":85,"props":2626,"children":2627},{"class":87,"line":230},[2628],{"type":51,"tag":85,"props":2629,"children":2630},{},[2631],{"type":57,"value":2632},"    );\n",{"type":51,"tag":66,"props":2634,"children":2636},{"id":2635},"error-handling",[2637],{"type":57,"value":2638},"Error Handling",{"type":51,"tag":73,"props":2640,"children":2642},{"className":510,"code":2641,"language":21,"meta":78,"style":78},"import com.azure.core.exception.HttpResponseException;\n\ntry {\n    configClient.getConfigurationSetting(\"nonexistent\", null);\n} catch (HttpResponseException e) {\n    if (e.getResponse().getStatusCode() == 404) {\n        System.err.println(\"Setting not found\");\n    } else {\n        System.err.println(\"Error: \" + e.getMessage());\n    }\n}\n",[2643],{"type":51,"tag":81,"props":2644,"children":2645},{"__ignoreMap":78},[2646,2654,2661,2669,2677,2685,2693,2701,2709,2717,2725],{"type":51,"tag":85,"props":2647,"children":2648},{"class":87,"line":88},[2649],{"type":51,"tag":85,"props":2650,"children":2651},{},[2652],{"type":57,"value":2653},"import com.azure.core.exception.HttpResponseException;\n",{"type":51,"tag":85,"props":2655,"children":2656},{"class":87,"line":97},[2657],{"type":51,"tag":85,"props":2658,"children":2659},{"emptyLinePlaceholder":243},[2660],{"type":57,"value":246},{"type":51,"tag":85,"props":2662,"children":2663},{"class":87,"line":106},[2664],{"type":51,"tag":85,"props":2665,"children":2666},{},[2667],{"type":57,"value":2668},"try {\n",{"type":51,"tag":85,"props":2670,"children":2671},{"class":87,"line":115},[2672],{"type":51,"tag":85,"props":2673,"children":2674},{},[2675],{"type":57,"value":2676},"    configClient.getConfigurationSetting(\"nonexistent\", null);\n",{"type":51,"tag":85,"props":2678,"children":2679},{"class":87,"line":124},[2680],{"type":51,"tag":85,"props":2681,"children":2682},{},[2683],{"type":57,"value":2684},"} catch (HttpResponseException e) {\n",{"type":51,"tag":85,"props":2686,"children":2687},{"class":87,"line":185},[2688],{"type":51,"tag":85,"props":2689,"children":2690},{},[2691],{"type":57,"value":2692},"    if (e.getResponse().getStatusCode() == 404) {\n",{"type":51,"tag":85,"props":2694,"children":2695},{"class":87,"line":194},[2696],{"type":51,"tag":85,"props":2697,"children":2698},{},[2699],{"type":57,"value":2700},"        System.err.println(\"Setting not found\");\n",{"type":51,"tag":85,"props":2702,"children":2703},{"class":87,"line":203},[2704],{"type":51,"tag":85,"props":2705,"children":2706},{},[2707],{"type":57,"value":2708},"    } else {\n",{"type":51,"tag":85,"props":2710,"children":2711},{"class":87,"line":212},[2712],{"type":51,"tag":85,"props":2713,"children":2714},{},[2715],{"type":57,"value":2716},"        System.err.println(\"Error: \" + e.getMessage());\n",{"type":51,"tag":85,"props":2718,"children":2719},{"class":87,"line":221},[2720],{"type":51,"tag":85,"props":2721,"children":2722},{},[2723],{"type":57,"value":2724},"    }\n",{"type":51,"tag":85,"props":2726,"children":2727},{"class":87,"line":230},[2728],{"type":51,"tag":85,"props":2729,"children":2730},{},[2731],{"type":57,"value":1190},{"type":51,"tag":66,"props":2733,"children":2735},{"id":2734},"best-practices",[2736],{"type":57,"value":2737},"Best Practices",{"type":51,"tag":2739,"props":2740,"children":2741},"ol",{},[2742,2753,2763,2773,2783,2793,2803,2813],{"type":51,"tag":312,"props":2743,"children":2744},{},[2745,2751],{"type":51,"tag":2746,"props":2747,"children":2748},"strong",{},[2749],{"type":57,"value":2750},"Use labels",{"type":57,"value":2752}," — Separate configurations by environment (Dev, Staging, Production)",{"type":51,"tag":312,"props":2754,"children":2755},{},[2756,2761],{"type":51,"tag":2746,"props":2757,"children":2758},{},[2759],{"type":57,"value":2760},"Use snapshots",{"type":57,"value":2762}," — Create immutable snapshots for releases",{"type":51,"tag":312,"props":2764,"children":2765},{},[2766,2771],{"type":51,"tag":2746,"props":2767,"children":2768},{},[2769],{"type":57,"value":2770},"Feature flags",{"type":57,"value":2772}," — Use for gradual rollouts and A\u002FB testing",{"type":51,"tag":312,"props":2774,"children":2775},{},[2776,2781],{"type":51,"tag":2746,"props":2777,"children":2778},{},[2779],{"type":57,"value":2780},"Secret references",{"type":57,"value":2782}," — Store sensitive values in Key Vault",{"type":51,"tag":312,"props":2784,"children":2785},{},[2786,2791],{"type":51,"tag":2746,"props":2787,"children":2788},{},[2789],{"type":57,"value":2790},"Conditional requests",{"type":57,"value":2792}," — Use ETags for optimistic concurrency",{"type":51,"tag":312,"props":2794,"children":2795},{},[2796,2801],{"type":51,"tag":2746,"props":2797,"children":2798},{},[2799],{"type":57,"value":2800},"Read-only protection",{"type":57,"value":2802}," — Lock critical production settings",{"type":51,"tag":312,"props":2804,"children":2805},{},[2806,2811],{"type":51,"tag":2746,"props":2807,"children":2808},{},[2809],{"type":57,"value":2810},"Use Entra ID",{"type":57,"value":2812}," — Preferred over connection strings",{"type":51,"tag":312,"props":2814,"children":2815},{},[2816,2821],{"type":51,"tag":2746,"props":2817,"children":2818},{},[2819],{"type":57,"value":2820},"Async client",{"type":57,"value":2822}," — Use for high-throughput scenarios",{"type":51,"tag":66,"props":2824,"children":2826},{"id":2825},"reference-links",[2827],{"type":57,"value":2828},"Reference Links",{"type":51,"tag":767,"props":2830,"children":2831},{},[2832,2848],{"type":51,"tag":771,"props":2833,"children":2834},{},[2835],{"type":51,"tag":775,"props":2836,"children":2837},{},[2838,2843],{"type":51,"tag":779,"props":2839,"children":2840},{},[2841],{"type":57,"value":2842},"Resource",{"type":51,"tag":779,"props":2844,"children":2845},{},[2846],{"type":57,"value":2847},"URL",{"type":51,"tag":790,"props":2849,"children":2850},{},[2851,2870,2887,2904,2921,2938],{"type":51,"tag":775,"props":2852,"children":2853},{},[2854,2859],{"type":51,"tag":797,"props":2855,"children":2856},{},[2857],{"type":57,"value":2858},"Maven Package",{"type":51,"tag":797,"props":2860,"children":2861},{},[2862],{"type":51,"tag":2863,"props":2864,"children":2868},"a",{"href":2865,"rel":2866},"https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.azure\u002Fazure-data-appconfiguration",[2867],"nofollow",[2869],{"type":57,"value":2865},{"type":51,"tag":775,"props":2871,"children":2872},{},[2873,2878],{"type":51,"tag":797,"props":2874,"children":2875},{},[2876],{"type":57,"value":2877},"GitHub",{"type":51,"tag":797,"props":2879,"children":2880},{},[2881],{"type":51,"tag":2863,"props":2882,"children":2885},{"href":2883,"rel":2884},"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Ftree\u002Fmain\u002Fsdk\u002Fappconfiguration\u002Fazure-data-appconfiguration",[2867],[2886],{"type":57,"value":2883},{"type":51,"tag":775,"props":2888,"children":2889},{},[2890,2895],{"type":51,"tag":797,"props":2891,"children":2892},{},[2893],{"type":57,"value":2894},"API Documentation",{"type":51,"tag":797,"props":2896,"children":2897},{},[2898],{"type":51,"tag":2863,"props":2899,"children":2902},{"href":2900,"rel":2901},"https:\u002F\u002Faka.ms\u002Fjava-docs",[2867],[2903],{"type":57,"value":2900},{"type":51,"tag":775,"props":2905,"children":2906},{},[2907,2912],{"type":51,"tag":797,"props":2908,"children":2909},{},[2910],{"type":57,"value":2911},"Product Docs",{"type":51,"tag":797,"props":2913,"children":2914},{},[2915],{"type":51,"tag":2863,"props":2916,"children":2919},{"href":2917,"rel":2918},"https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-app-configuration",[2867],[2920],{"type":57,"value":2917},{"type":51,"tag":775,"props":2922,"children":2923},{},[2924,2929],{"type":51,"tag":797,"props":2925,"children":2926},{},[2927],{"type":57,"value":2928},"Samples",{"type":51,"tag":797,"props":2930,"children":2931},{},[2932],{"type":51,"tag":2863,"props":2933,"children":2936},{"href":2934,"rel":2935},"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Ftree\u002Fmain\u002Fsdk\u002Fappconfiguration\u002Fazure-data-appconfiguration\u002Fsrc\u002Fsamples",[2867],[2937],{"type":57,"value":2934},{"type":51,"tag":775,"props":2939,"children":2940},{},[2941,2946],{"type":51,"tag":797,"props":2942,"children":2943},{},[2944],{"type":57,"value":2945},"Troubleshooting",{"type":51,"tag":797,"props":2947,"children":2948},{},[2949],{"type":51,"tag":2863,"props":2950,"children":2953},{"href":2951,"rel":2952},"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fappconfiguration\u002Fazure-data-appconfiguration\u002FTROUBLESHOOTING.md",[2867],[2954],{"type":57,"value":2951},{"type":51,"tag":2956,"props":2957,"children":2958},"style",{},[2959],{"type":57,"value":2960},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2962,"total":3142},[2963,2985,3001,3020,3035,3052,3063,3076,3091,3098,3117,3130],{"slug":2964,"name":2964,"fn":2965,"description":2966,"org":2967,"tags":2968,"stars":2982,"repoUrl":2983,"updatedAt":2984},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2969,2972,2975,2976,2979],{"name":2970,"slug":2971,"type":15},"Engineering","engineering",{"name":2973,"slug":2974,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":2977,"slug":2978,"type":15},"Project Management","project-management",{"name":2980,"slug":2981,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":2986,"name":2986,"fn":2987,"description":2988,"org":2989,"tags":2990,"stars":25,"repoUrl":26,"updatedAt":3000},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2991,2994,2996,2997],{"name":2992,"slug":2993,"type":15},".NET","net",{"name":2995,"slug":32,"type":15},"Agents",{"name":13,"slug":14,"type":15},{"name":2998,"slug":2999,"type":15},"LLM","llm","2026-07-03T16:32:10.297433",{"slug":3002,"name":3002,"fn":3003,"description":3004,"org":3005,"tags":3006,"stars":25,"repoUrl":26,"updatedAt":3019},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3007,3010,3011,3014,3015,3016],{"name":3008,"slug":3009,"type":15},"Analytics","analytics",{"name":13,"slug":14,"type":15},{"name":3012,"slug":3013,"type":15},"Data Analysis","data-analysis",{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},{"name":3017,"slug":3018,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":3021,"name":3021,"fn":3022,"description":3023,"org":3024,"tags":3025,"stars":25,"repoUrl":26,"updatedAt":3034},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3026,3029,3030,3031],{"name":3027,"slug":3028,"type":15},"AI Infrastructure","ai-infrastructure",{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":3032,"slug":3033,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":3036,"name":3036,"fn":3037,"description":3038,"org":3039,"tags":3040,"stars":25,"repoUrl":26,"updatedAt":3051},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3041,3042,3045,3046,3047,3050],{"name":13,"slug":14,"type":15},{"name":3043,"slug":3044,"type":15},"Compliance","compliance",{"name":2998,"slug":2999,"type":15},{"name":9,"slug":8,"type":15},{"name":3048,"slug":3049,"type":15},"Python","python",{"name":3032,"slug":3033,"type":15},"2026-07-18T05:14:23.017504",{"slug":3053,"name":3053,"fn":3054,"description":3055,"org":3056,"tags":3057,"stars":25,"repoUrl":26,"updatedAt":3062},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3058,3059,3060,3061],{"name":3008,"slug":3009,"type":15},{"name":13,"slug":14,"type":15},{"name":2998,"slug":2999,"type":15},{"name":3048,"slug":3049,"type":15},"2026-07-31T05:54:29.068751",{"slug":3064,"name":3064,"fn":3065,"description":3066,"org":3067,"tags":3068,"stars":25,"repoUrl":26,"updatedAt":3075},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3069,3072,3073,3074],{"name":3070,"slug":3071,"type":15},"API Development","api-development",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":3048,"slug":3049,"type":15},"2026-07-18T05:14:16.988376",{"slug":3077,"name":3077,"fn":3078,"description":3079,"org":3080,"tags":3081,"stars":25,"repoUrl":26,"updatedAt":3090},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3082,3083,3086,3089],{"name":13,"slug":14,"type":15},{"name":3084,"slug":3085,"type":15},"Computer Vision","computer-vision",{"name":3087,"slug":3088,"type":15},"Images","images",{"name":3048,"slug":3049,"type":15},"2026-07-18T05:14:18.007737",{"slug":4,"name":4,"fn":5,"description":6,"org":3092,"tags":3093,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3094,3095,3096,3097],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"slug":3099,"name":3099,"fn":3100,"description":3101,"org":3102,"tags":3103,"stars":25,"repoUrl":26,"updatedAt":3116},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3104,3107,3110,3113],{"name":3105,"slug":3106,"type":15},"Cosmos DB","cosmos-db",{"name":3108,"slug":3109,"type":15},"Database","database",{"name":3111,"slug":3112,"type":15},"NoSQL","nosql",{"name":3114,"slug":3115,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":3118,"name":3118,"fn":3100,"description":3119,"org":3120,"tags":3121,"stars":25,"repoUrl":26,"updatedAt":3129},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3122,3123,3124,3125,3126],{"name":3105,"slug":3106,"type":15},{"name":3108,"slug":3109,"type":15},{"name":9,"slug":8,"type":15},{"name":3111,"slug":3112,"type":15},{"name":3127,"slug":3128,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":3131,"name":3131,"fn":3132,"description":3133,"org":3134,"tags":3135,"stars":25,"repoUrl":26,"updatedAt":3141},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3136,3137,3138,3139,3140],{"name":13,"slug":14,"type":15},{"name":3105,"slug":3106,"type":15},{"name":3108,"slug":3109,"type":15},{"name":20,"slug":21,"type":15},{"name":3111,"slug":3112,"type":15},"2026-05-13T06:14:17.582229",267,{"items":3144,"total":3198},[3145,3152,3161,3168,3177,3184,3191],{"slug":2986,"name":2986,"fn":2987,"description":2988,"org":3146,"tags":3147,"stars":25,"repoUrl":26,"updatedAt":3000},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3148,3149,3150,3151],{"name":2992,"slug":2993,"type":15},{"name":2995,"slug":32,"type":15},{"name":13,"slug":14,"type":15},{"name":2998,"slug":2999,"type":15},{"slug":3002,"name":3002,"fn":3003,"description":3004,"org":3153,"tags":3154,"stars":25,"repoUrl":26,"updatedAt":3019},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3155,3156,3157,3158,3159,3160],{"name":3008,"slug":3009,"type":15},{"name":13,"slug":14,"type":15},{"name":3012,"slug":3013,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},{"name":3017,"slug":3018,"type":15},{"slug":3021,"name":3021,"fn":3022,"description":3023,"org":3162,"tags":3163,"stars":25,"repoUrl":26,"updatedAt":3034},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3164,3165,3166,3167],{"name":3027,"slug":3028,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":3032,"slug":3033,"type":15},{"slug":3036,"name":3036,"fn":3037,"description":3038,"org":3169,"tags":3170,"stars":25,"repoUrl":26,"updatedAt":3051},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3171,3172,3173,3174,3175,3176],{"name":13,"slug":14,"type":15},{"name":3043,"slug":3044,"type":15},{"name":2998,"slug":2999,"type":15},{"name":9,"slug":8,"type":15},{"name":3048,"slug":3049,"type":15},{"name":3032,"slug":3033,"type":15},{"slug":3053,"name":3053,"fn":3054,"description":3055,"org":3178,"tags":3179,"stars":25,"repoUrl":26,"updatedAt":3062},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3180,3181,3182,3183],{"name":3008,"slug":3009,"type":15},{"name":13,"slug":14,"type":15},{"name":2998,"slug":2999,"type":15},{"name":3048,"slug":3049,"type":15},{"slug":3064,"name":3064,"fn":3065,"description":3066,"org":3185,"tags":3186,"stars":25,"repoUrl":26,"updatedAt":3075},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3187,3188,3189,3190],{"name":3070,"slug":3071,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":3048,"slug":3049,"type":15},{"slug":3077,"name":3077,"fn":3078,"description":3079,"org":3192,"tags":3193,"stars":25,"repoUrl":26,"updatedAt":3090},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3194,3195,3196,3197],{"name":13,"slug":14,"type":15},{"name":3084,"slug":3085,"type":15},{"name":3087,"slug":3088,"type":15},{"name":3048,"slug":3049,"type":15},38]