{"id":"7c3dbb7d-dc5e-4a56-9dce-cd6b720cbda9","shortId":"h6emHW","kind":"skill","title":"azure-resource-manager-redis-dotnet","tagline":"Azure Resource Manager SDK for Redis in .NET.","description":"# Azure.ResourceManager.Redis (.NET)\n\nManagement plane SDK for provisioning and managing Azure Cache for Redis resources via Azure Resource Manager.\n\n> **⚠️ Management vs Data Plane**\n> - **This SDK (Azure.ResourceManager.Redis)**: Create caches, configure firewall rules, manage access keys, set up geo-replication\n> - **Data Plane SDK (StackExchange.Redis)**: Get/set keys, pub/sub, streams, Lua scripts\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.Redis\ndotnet add package Azure.Identity\n```\n\n**Current Version**: 1.5.1 (Stable)  \n**API Version**: 2024-11-01  \n**Target Frameworks**: .NET 8.0, .NET Standard 2.0\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=<your-subscription-id>\n# For service principal auth (optional)\nAZURE_TENANT_ID=<tenant-id>\nAZURE_CLIENT_ID=<client-id>\nAZURE_CLIENT_SECRET=<client-secret>\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.Redis;\n\n// Always use DefaultAzureCredential\nvar credential = new DefaultAzureCredential();\nvar armClient = new ArmClient(credential);\n\n// Get subscription\nvar subscriptionId = Environment.GetEnvironmentVariable(\"AZURE_SUBSCRIPTION_ID\");\nvar subscription = armClient.GetSubscriptionResource(\n    new ResourceIdentifier($\"/subscriptions/{subscriptionId}\"));\n```\n\n## Resource Hierarchy\n\n```\nArmClient\n└── SubscriptionResource\n    └── ResourceGroupResource\n        └── RedisResource\n            ├── RedisFirewallRuleResource\n            ├── RedisPatchScheduleResource\n            ├── RedisLinkedServerWithPropertyResource\n            ├── RedisPrivateEndpointConnectionResource\n            └── RedisCacheAccessPolicyResource\n```\n\n## Core Workflows\n\n### 1. Create Redis Cache\n\n```csharp\nusing Azure.ResourceManager.Redis;\nusing Azure.ResourceManager.Redis.Models;\n\n// Get resource group\nvar resourceGroup = await subscription\n    .GetResourceGroupAsync(\"my-resource-group\");\n\n// Define cache configuration\nvar cacheData = new RedisCreateOrUpdateContent(\n    location: AzureLocation.EastUS,\n    sku: new RedisSku(RedisSkuName.Standard, RedisSkuFamily.BasicOrStandard, 1))\n{\n    EnableNonSslPort = false,\n    MinimumTlsVersion = RedisTlsVersion.Tls1_2,\n    RedisConfiguration = new RedisCommonConfiguration\n    {\n        MaxMemoryPolicy = \"volatile-lru\"\n    },\n    Tags =\n    {\n        [\"environment\"] = \"production\"\n    }\n};\n\n// Create cache (long-running operation)\nvar cacheCollection = resourceGroup.Value.GetAllRedis();\nvar operation = await cacheCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-redis-cache\",\n    cacheData);\n\nRedisResource cache = operation.Value;\nConsole.WriteLine($\"Cache created: {cache.Data.HostName}\");\n```\n\n### 2. Get Redis Cache\n\n```csharp\n// Get existing cache\nvar cache = await resourceGroup.Value\n    .GetRedisAsync(\"my-redis-cache\");\n\nConsole.WriteLine($\"Host: {cache.Value.Data.HostName}\");\nConsole.WriteLine($\"Port: {cache.Value.Data.Port}\");\nConsole.WriteLine($\"SSL Port: {cache.Value.Data.SslPort}\");\nConsole.WriteLine($\"Provisioning State: {cache.Value.Data.ProvisioningState}\");\n```\n\n### 3. Update Redis Cache\n\n```csharp\nvar patchData = new RedisPatch\n{\n    Sku = new RedisSku(RedisSkuName.Standard, RedisSkuFamily.BasicOrStandard, 2),\n    RedisConfiguration = new RedisCommonConfiguration\n    {\n        MaxMemoryPolicy = \"allkeys-lru\"\n    }\n};\n\nvar updateOperation = await cache.Value.UpdateAsync(\n    WaitUntil.Completed,\n    patchData);\n```\n\n### 4. Delete Redis Cache\n\n```csharp\nawait cache.Value.DeleteAsync(WaitUntil.Completed);\n```\n\n### 5. Get Access Keys\n\n```csharp\nvar keys = await cache.Value.GetKeysAsync();\nConsole.WriteLine($\"Primary Key: {keys.Value.PrimaryKey}\");\nConsole.WriteLine($\"Secondary Key: {keys.Value.SecondaryKey}\");\n```\n\n### 6. Regenerate Access Keys\n\n```csharp\nvar regenerateContent = new RedisRegenerateKeyContent(RedisRegenerateKeyType.Primary);\nvar newKeys = await cache.Value.RegenerateKeyAsync(regenerateContent);\nConsole.WriteLine($\"New Primary Key: {newKeys.Value.PrimaryKey}\");\n```\n\n### 7. Manage Firewall Rules\n\n```csharp\n// Create firewall rule\nvar firewallData = new RedisFirewallRuleData(\n    startIP: System.Net.IPAddress.Parse(\"10.0.0.1\"),\n    endIP: System.Net.IPAddress.Parse(\"10.0.0.255\"));\n\nvar firewallCollection = cache.Value.GetRedisFirewallRules();\nvar firewallOperation = await firewallCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"allow-internal-network\",\n    firewallData);\n\n// List all firewall rules\nawait foreach (var rule in firewallCollection.GetAllAsync())\n{\n    Console.WriteLine($\"Rule: {rule.Data.Name} ({rule.Data.StartIP} - {rule.Data.EndIP})\");\n}\n\n// Delete firewall rule\nvar ruleToDelete = await firewallCollection.GetAsync(\"allow-internal-network\");\nawait ruleToDelete.Value.DeleteAsync(WaitUntil.Completed);\n```\n\n### 8. Configure Patch Schedule (Premium SKU)\n\n```csharp\n// Patch schedules require Premium SKU\nvar scheduleData = new RedisPatchScheduleData(\n    new[]\n    {\n        new RedisPatchScheduleSetting(RedisDayOfWeek.Saturday, 2) // 2 AM Saturday\n        {\n            MaintenanceWindow = TimeSpan.FromHours(5)\n        },\n        new RedisPatchScheduleSetting(RedisDayOfWeek.Sunday, 2) // 2 AM Sunday\n        {\n            MaintenanceWindow = TimeSpan.FromHours(5)\n        }\n    });\n\nvar scheduleCollection = cache.Value.GetRedisPatchSchedules();\nawait scheduleCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    RedisPatchScheduleDefaultName.Default,\n    scheduleData);\n```\n\n### 9. Import/Export Data (Premium SKU)\n\n```csharp\n// Import data from blob storage\nvar importContent = new ImportRdbContent(\n    files: new[] { \"https://mystorageaccount.blob.core.windows.net/container/dump.rdb\" },\n    format: \"RDB\");\n\nawait cache.Value.ImportDataAsync(WaitUntil.Completed, importContent);\n\n// Export data to blob storage\nvar exportContent = new ExportRdbContent(\n    prefix: \"backup\",\n    container: \"https://mystorageaccount.blob.core.windows.net/container?sastoken\",\n    format: \"RDB\");\n\nawait cache.Value.ExportDataAsync(WaitUntil.Completed, exportContent);\n```\n\n### 10. Force Reboot\n\n```csharp\nvar rebootContent = new RedisRebootContent\n{\n    RebootType = RedisRebootType.AllNodes,\n    ShardId = 0 // For clustered caches\n};\n\nawait cache.Value.ForceRebootAsync(rebootContent);\n```\n\n## SKU Reference\n\n| SKU | Family | Capacity | Features |\n|-----|--------|----------|----------|\n| Basic | C | 0-6 | Single node, no SLA, dev/test only |\n| Standard | C | 0-6 | Two nodes (primary/replica), SLA |\n| Premium | P | 1-5 | Clustering, geo-replication, VNet, persistence |\n\n**Capacity Sizes (Family C - Basic/Standard)**:\n- C0: 250 MB\n- C1: 1 GB\n- C2: 2.5 GB\n- C3: 6 GB\n- C4: 13 GB\n- C5: 26 GB\n- C6: 53 GB\n\n**Capacity Sizes (Family P - Premium)**:\n- P1: 6 GB per shard\n- P2: 13 GB per shard\n- P3: 26 GB per shard\n- P4: 53 GB per shard\n- P5: 120 GB per shard\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ArmClient` | Entry point for all ARM operations |\n| `RedisResource` | Represents a Redis cache instance |\n| `RedisCollection` | Collection for cache CRUD operations |\n| `RedisFirewallRuleResource` | Firewall rule for IP filtering |\n| `RedisPatchScheduleResource` | Maintenance window configuration |\n| `RedisLinkedServerWithPropertyResource` | Geo-replication linked server |\n| `RedisPrivateEndpointConnectionResource` | Private endpoint connection |\n| `RedisCacheAccessPolicyResource` | RBAC access policy |\n| `RedisCreateOrUpdateContent` | Cache creation payload |\n| `RedisPatch` | Cache update payload |\n| `RedisSku` | SKU configuration (name, family, capacity) |\n| `RedisAccessKeys` | Primary and secondary access keys |\n| `RedisRegenerateKeyContent` | Key regeneration request |\n\n## Best Practices\n\n1. **Use `WaitUntil.Completed`** for operations that must finish before proceeding\n2. **Use `WaitUntil.Started`** when you want to poll manually or run operations in parallel\n3. **Always use `DefaultAzureCredential`** — never hardcode keys\n4. **Handle `RequestFailedException`** for ARM API errors\n5. **Use `CreateOrUpdateAsync`** for idempotent operations\n6. **Navigate hierarchy** via `Get*` methods (e.g., `cache.GetRedisFirewallRules()`)\n7. **Use Premium SKU** for production workloads requiring geo-replication, clustering, or persistence\n8. **Enable TLS 1.2 minimum** — set `MinimumTlsVersion = RedisTlsVersion.Tls1_2`\n9. **Disable non-SSL port** — set `EnableNonSslPort = false` for security\n10. **Rotate keys regularly** — use `RegenerateKeyAsync` and update connection strings\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    var operation = await cacheCollection.CreateOrUpdateAsync(\n        WaitUntil.Completed, cacheName, cacheData);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Cache already exists\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Invalid configuration: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n```\n\n## Common Pitfalls\n\n1. **SKU downgrades not allowed** — You cannot downgrade from Premium to Standard/Basic\n2. **Clustering requires Premium** — Shard configuration only available on Premium SKU\n3. **Geo-replication requires Premium** — Linked servers only work with Premium caches\n4. **VNet injection requires Premium** — Virtual network support is Premium-only\n5. **Patch schedules require Premium** — Maintenance windows only configurable on Premium\n6. **Cache name globally unique** — Redis cache names must be unique across all Azure subscriptions\n7. **Long provisioning times** — Cache creation can take 15-20 minutes; use `WaitUntil.Started` for async patterns\n\n## Connecting with StackExchange.Redis (Data Plane)\n\nAfter creating the cache with this management SDK, use StackExchange.Redis for data operations:\n\n```csharp\nusing StackExchange.Redis;\n\n// Get connection info from management SDK\nvar cache = await resourceGroup.Value.GetRedisAsync(\"my-redis-cache\");\nvar keys = await cache.Value.GetKeysAsync();\n\n// Connect with StackExchange.Redis\nvar connectionString = $\"{cache.Value.Data.HostName}:{cache.Value.Data.SslPort},password={keys.Value.PrimaryKey},ssl=True,abortConnect=False\";\nvar connection = ConnectionMultiplexer.Connect(connectionString);\nvar db = connection.GetDatabase();\n\n// Data operations\nawait db.StringSetAsync(\"key\", \"value\");\nvar value = await db.StringGetAsync(\"key\");\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `StackExchange.Redis` | Data plane (get/set, pub/sub, streams) | `dotnet add package StackExchange.Redis` |\n| `Azure.ResourceManager.Redis` | Management plane (this SDK) | `dotnet add package Azure.ResourceManager.Redis` |\n| `Microsoft.Azure.StackExchangeRedis` | Azure-specific Redis extensions | `dotnet add package Microsoft.Azure.StackExchangeRedis` |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","resource","manager","redis","dotnet","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills"],"capabilities":["skill","source-sickn33","skill-azure-resource-manager-redis-dotnet","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-resource-manager-redis-dotnet","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (11,299 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:33.420Z","embedding":null,"createdAt":"2026-04-18T21:33:01.183Z","updatedAt":"2026-04-24T18:50:33.420Z","lastSeenAt":"2026-04-24T18:50:33.420Z","tsv":"'-01':81 '-11':80 '-20':893 '-5':534 '-6':516,526 '/container/dump.rdb':461 '/container?sastoken':482 '/subscriptions':142 '0':500,515,525 '1':157,192,533,550,671,810 '1.2':740 '1.5.1':75 '10':489,756 '10.0.0.1':351 '10.0.0.255':354 '120':593 '13':559,578 '15':892 '2':233,278,417,418,427,428,681,822 '2.0':88 '2.5':553 '2024':79 '250':547 '26':562,583 '3':264,695,833 '4':292,702,846 '400':794 '409':784 '5':300,423,433,709,858 '53':565,588 '6':317,556,573,715,869 '7':337,723,884 '8':397,737 '8.0':85 '9':442,745 'abortconnect':950 'access':46,302,319,643,663 'across':880 'action':1016 'add':66,70,982,991,1001 'allkey':284 'allkeys-lru':283 'allow':364,391,814 'allow-internal-network':363,390 'alreadi':787 'alway':117,696 'api':77,707 'applic':1010 'arm':607,706,803 'armclient':125,127,146,602 'armclient.getsubscriptionresource':139 'ask':1054 'async':898 'auth':98 'authent':109 'avail':829 'await':171,218,243,288,297,307,329,360,372,388,394,437,464,485,504,774,929,937,961,967 'azur':2,7,24,30,92,100,103,106,134,770,882,996 'azure-resource-manager-redis-dotnet':1 'azure-specif':995 'azure.identity':72,112 'azure.resourcemanager':114 'azure.resourcemanager.redis':15,39,68,116,163,985,993 'azure.resourcemanager.redis.models':165 'azurelocation.eastus':186 'backup':478 'bash':64,91 'basic':513 'basic/standard':545 'best':669 'blob':451,471 'boundari':1062 'c':514,524,544 'c0':546 'c1':549 'c2':552 'c3':555 'c4':558 'c5':561 'c6':564 'cach':25,41,160,179,208,224,227,230,236,240,242,249,267,295,503,613,618,646,650,786,845,870,875,888,908,928,934 'cache.data.hostname':232 'cache.getredisfirewallrules':722 'cache.value.data.hostname':252,944 'cache.value.data.port':255 'cache.value.data.provisioningstate':263 'cache.value.data.sslport':259,945 'cache.value.deleteasync':298 'cache.value.exportdataasync':486 'cache.value.forcerebootasync':505 'cache.value.getkeysasync':308,938 'cache.value.getredisfirewallrules':357 'cache.value.getredispatchschedules':436 'cache.value.importdataasync':465 'cache.value.regeneratekeyasync':330 'cache.value.updateasync':289 'cachecollect':214 'cachecollection.createorupdateasync':219,775 'cachedata':182,225,778 'cachenam':777 'cannot':816 'capac':511,541,567,658 'catch':779,789,799 'clarif':1056 'clear':1029 'client':104,107 'cluster':502,535,734,823 'collect':616 'common':808 'configur':42,180,398,630,655,797,827,866 'connect':640,764,900,922,939,953 'connection.getdatabase':958 'connectionmultiplexer.connect':954 'connectionstr':943,955 'console.writeline':229,250,253,256,260,309,313,332,378,785,795,802 'contain':479 'core':155 'creat':40,158,207,231,342,906 'createorupdateasync':711 'creation':647,889 'credenti':121,128 'criteria':1065 'crud':619 'csharp':110,161,237,268,296,304,321,341,403,447,492,768,918 'current':73 'data':35,53,444,449,469,903,916,959,976 'db':957 'db.stringgetasync':968 'db.stringsetasync':962 'defaultazurecredenti':119,123,698 'defin':178 'delet':293,383 'describ':1017,1033 'dev/test':521 'disabl':746 'dotnet':6,65,69,981,990,1000 'downgrad':812,817 'e.g':721 'enabl':738 'enablenonsslport':193,752 'endip':352 'endpoint':639 'entri':603 'environ':89,205,1045 'environment-specif':1044 'environment.getenvironmentvariable':133 'error':708,766,804 'ex':781,791,801 'ex.errorcode':806 'ex.message':798,807 'ex.status':783,793,805 'execut':1012 'exist':239,788 'expert':1050 'export':468 'exportcont':474,488 'exportrdbcont':476 'extens':999 'fals':194,753,951 'famili':510,543,569,657 'featur':512 'file':457 'filter':626 'finish':678 'firewal':43,339,343,370,384,622 'firewallcollect':356 'firewallcollection.createorupdateasync':361 'firewallcollection.getallasync':377 'firewallcollection.getasync':389 'firewalldata':346,367 'firewalloper':359 'forc':490 'foreach':373 'format':462,483 'framework':83 'gb':551,554,557,560,563,566,574,579,584,589,594 'geo':51,537,633,732,835 'geo-repl':50,536,632,731,834 'get':129,166,234,238,301,719,921 'get/set':57,978 'getredisasync':245 'getresourcegroupasync':173 'global':872 'group':168,177 'handl':703,767 'hardcod':700 'hierarchi':145,717 'host':251 'id':94,102,105,136 'idempot':713 'import':448 'import/export':443 'importcont':454,467 'importrdbcont':456 'info':923 'inject':848 'input':1059 'instal':63,974 'instanc':614 'intern':365,392 'invalid':796 'ip':625 'key':47,58,303,306,311,315,320,335,597,664,666,701,758,936,963,969 'keys.value.primarykey':312,947 'keys.value.secondarykey':316 'limit':1021 'link':635,839 'list':368 'locat':185 'long':210,885 'long-run':209 'lru':203,285 'lua':61 'mainten':628,863 'maintenancewindow':421,431 'manag':4,9,17,23,32,33,45,338,911,925,986 'manual':689 'match':1030 'maxmemorypolici':200,282 'mb':548 'method':720 'microsoft.azure.stackexchangeredis':994,1003 'minimum':741 'minimumtlsvers':195,743 'minut':894 'miss':1067 'must':677,877 'my-redis-cach':221,246,931 'my-resource-group':174 'mystorageaccount.blob.core.windows.net':460,481 'mystorageaccount.blob.core.windows.net/container/dump.rdb':459 'mystorageaccount.blob.core.windows.net/container?sastoken':480 'name':656,871,876 'navig':716 'net':14,16,84,86 'network':366,393,852 'never':699 'new':122,126,140,183,188,198,271,274,280,324,333,347,411,413,414,424,455,458,475,495 'newkey':328 'newkeys.value.primarykey':336 'node':518,528 'non':748 'non-ssl':747 'oper':212,217,608,620,675,692,714,773,917,960 'operation.value':228 'option':99 'output':1039 'overview':1020 'p':532,570 'p1':572 'p2':577 'p3':582 'p4':587 'p5':592 'packag':67,71,983,992,1002 'parallel':694 'password':946 'patch':399,404,859 'patchdata':270,291 'pattern':899 'payload':648,652 'per':575,580,585,590,595 'permiss':1060 'persist':540,736 'pitfal':809 'plane':18,36,54,904,977,987 'point':604 'polici':644 'poll':688 'port':254,258,750 'practic':670 'prefix':477 'premium':401,407,445,531,571,725,819,825,831,838,844,850,856,862,868 'premium-on':855 'primari':310,334,660 'primary/replica':529 'princip':97 'privat':638 'proceed':680 'product':206,728 'provis':21,261,886 'pub/sub':59,979 'purpos':601,973 'rbac':642 'rdb':463,484 'reboot':491 'rebootcont':494,506 'reboottyp':497 'redi':5,12,27,159,223,235,248,266,294,612,874,933,998 'redisaccesskey':659 'rediscacheaccesspolicyresourc':154,641 'rediscollect':615 'rediscommonconfigur':199,281 'redisconfigur':197,279 'rediscreateorupdatecont':184,645 'redisdayofweek.saturday':416 'redisdayofweek.sunday':426 'redisfirewallruledata':348 'redisfirewallruleresourc':150,621 'redislinkedserverwithpropertyresourc':152,631 'redispatch':272,649 'redispatchscheduledata':412 'redispatchscheduledefaultname.default':440 'redispatchscheduleresourc':151,627 'redispatchscheduleset':415,425 'redisprivateendpointconnectionresourc':153,637 'redisrebootcont':496 'redisreboottype.allnodes':498 'redisregeneratekeycont':325,665 'redisregeneratekeytype.primary':326 'redisresourc':149,226,609 'redissku':189,275,653 'redisskufamily.basicorstandard':191,277 'redisskuname.standard':190,276 'redistlsversion.tls1_2':196,744 'refer':508,599 'regener':318,667 'regeneratecont':323,331 'regeneratekeyasync':761 'regular':759 'relat':970 'replic':52,538,634,733,836 'repres':610 'request':668 'requestfailedexcept':704,780,790,800 'requir':406,730,824,837,849,861,1058 'resourc':3,8,28,31,144,167,176 'resourcegroup':170 'resourcegroup.value':244 'resourcegroup.value.getallredis':215 'resourcegroup.value.getredisasync':930 'resourcegroupresourc':148 'resourceidentifi':141 'review':1051 'rotat':757 'rule':44,340,344,371,375,379,385,623 'rule.data.endip':382 'rule.data.name':380 'rule.data.startip':381 'ruletodelet':387 'ruletodelete.value.deleteasync':395 'run':211,691 'safeti':1061 'saturday':420 'schedul':400,405,860 'schedulecollect':435 'schedulecollection.createorupdateasync':438 'scheduledata':410,441 'scope':1032 'script':62 'sdk':10,19,38,55,912,926,972,989 'sdks':971 'secondari':314,662 'secret':108 'secur':755 'server':636,840 'servic':96 'set':48,742,751 'shard':576,581,586,591,596,826 'shardid':499 'singl':517 'size':542,568 'skill':1008,1024 'skill-azure-resource-manager-redis-dotnet' 'sku':187,273,402,408,446,507,509,654,726,811,832 'sla':520,530 'source-sickn33' 'specif':997,1046 'ssl':257,749,948 'stabl':76 'stackexchange.redis':56,902,914,920,941,975,984 'standard':87,523 'standard/basic':821 'startip':349 'state':262 'stop':1052 'storag':452,472 'stream':60,980 'string':765 'subscript':93,130,135,138,172,883 'subscriptionid':132,143 'subscriptionresourc':147 'substitut':1042 'success':1064 'sunday':430 'support':853 'system.net.ipaddress.parse':350,353 'tag':204 'take':891 'target':82 'task':1028 'tenant':101 'test':1048 'time':887 'timespan.fromhours':422,432 'tls':739 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':1037 'tri':771 'true':949 'two':527 'type':598,600 'uniqu':873,879 'updat':265,651,763 'updateoper':287 'use':111,113,115,118,162,164,672,682,697,710,724,760,769,895,913,919,1006,1022 'valid':1047 'valu':964,966 'var':120,124,131,137,169,181,213,216,241,269,286,305,322,327,345,355,358,374,386,409,434,453,473,493,772,927,935,942,952,956,965 'variabl':90 'version':74,78 'via':29,718 'virtual':851 'vnet':539,847 'volatil':202 'volatile-lru':201 'vs':34 'waituntil.completed':220,290,299,362,396,439,466,487,673,776 'waituntil.started':683,896 'want':686 'window':629,864 'work':842 'workflow':156,1014 'workload':729","prices":[{"id":"a72d223a-0e84-440e-b05f-4132b0006bf3","listingId":"7c3dbb7d-dc5e-4a56-9dce-cd6b720cbda9","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:33:01.183Z"}],"sources":[{"listingId":"7c3dbb7d-dc5e-4a56-9dce-cd6b720cbda9","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-resource-manager-redis-dotnet","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-resource-manager-redis-dotnet","isPrimary":false,"firstSeenAt":"2026-04-18T21:33:01.183Z","lastSeenAt":"2026-04-24T18:50:33.420Z"}],"details":{"listingId":"7c3dbb7d-dc5e-4a56-9dce-cd6b720cbda9","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-resource-manager-redis-dotnet","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"5ed3089f0c6888ed1e0c4ee7143b1213996d4347","skill_md_path":"skills/azure-resource-manager-redis-dotnet/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-resource-manager-redis-dotnet"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-resource-manager-redis-dotnet","description":"Azure Resource Manager SDK for Redis in .NET."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-resource-manager-redis-dotnet"},"updatedAt":"2026-04-24T18:50:33.420Z"}}