{"id":"437aa488-ed0a-439c-be67-921abdee610b","shortId":"nzTWAa","kind":"skill","title":"azure-mgmt-botservice-dotnet","tagline":"Azure Resource Manager SDK for Bot Service in .NET. Management plane operations for creating and managing Azure Bot resources, channels (Teams, DirectLine, Slack), and connection settings.","description":"# Azure.ResourceManager.BotService (.NET)\n\nManagement plane SDK for provisioning and managing Azure Bot Service resources via Azure Resource Manager.\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.BotService\ndotnet add package Azure.Identity\n```\n\n**Current Versions**: Stable v1.1.1, Preview v1.1.0-beta.1\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.BotService;\n\n// Authenticate using DefaultAzureCredential\nvar credential = new DefaultAzureCredential();\nArmClient armClient = new ArmClient(credential);\n\n// Get subscription and resource group\nSubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync();\nResourceGroupResource resourceGroup = await subscription.GetResourceGroups().GetAsync(\"myResourceGroup\");\n\n// Access bot collection\nBotCollection botCollection = resourceGroup.GetBots();\n```\n\n## Resource Hierarchy\n\n```\nArmClient\n└── SubscriptionResource\n    └── ResourceGroupResource\n        └── BotResource\n            ├── BotChannelResource (DirectLine, Teams, Slack, etc.)\n            ├── BotConnectionSettingResource (OAuth connections)\n            └── BotServicePrivateEndpointConnectionResource\n```\n\n## Core Workflows\n\n### 1. Create Bot Resource\n\n```csharp\nusing Azure.ResourceManager.BotService;\nusing Azure.ResourceManager.BotService.Models;\n\n// Create bot data\nvar botData = new BotData(AzureLocation.WestUS2)\n{\n    Kind = BotServiceKind.Azurebot,\n    Sku = new BotServiceSku(BotServiceSkuName.F0),\n    Properties = new BotProperties(\n        displayName: \"MyBot\",\n        endpoint: new Uri(\"https://mybot.azurewebsites.net/api/messages\"),\n        msaAppId: \"<your-msa-app-id>\")\n    {\n        Description = \"My Azure Bot\",\n        MsaAppType = BotMsaAppType.MultiTenant\n    }\n};\n\n// Create or update the bot\nArmOperation<BotResource> operation = await botCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed, \n    \"myBotName\", \n    botData);\n    \nBotResource bot = operation.Value;\nConsole.WriteLine($\"Bot created: {bot.Data.Name}\");\n```\n\n### 2. Configure DirectLine Channel\n\n```csharp\n// Get the bot\nBotResource bot = await resourceGroup.GetBots().GetAsync(\"myBotName\");\n\n// Get channel collection\nBotChannelCollection channels = bot.GetBotChannels();\n\n// Create DirectLine channel configuration\nvar channelData = new BotChannelData(AzureLocation.WestUS2)\n{\n    Properties = new DirectLineChannel()\n    {\n        Properties = new DirectLineChannelProperties()\n        {\n            Sites = \n            {\n                new DirectLineSite(\"Default Site\")\n                {\n                    IsEnabled = true,\n                    IsV1Enabled = false,\n                    IsV3Enabled = true,\n                    IsSecureSiteEnabled = true\n                }\n            }\n        }\n    }\n};\n\n// Create or update the channel\nArmOperation<BotChannelResource> channelOp = await channels.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    BotChannelName.DirectLineChannel,\n    channelData);\n\nConsole.WriteLine(\"DirectLine channel configured\");\n```\n\n### 3. Configure Microsoft Teams Channel\n\n```csharp\nvar teamsChannelData = new BotChannelData(AzureLocation.WestUS2)\n{\n    Properties = new MsTeamsChannel()\n    {\n        Properties = new MsTeamsChannelProperties()\n        {\n            IsEnabled = true,\n            EnableCalling = false\n        }\n    }\n};\n\nawait channels.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    BotChannelName.MsTeamsChannel,\n    teamsChannelData);\n```\n\n### 4. Configure Web Chat Channel\n\n```csharp\nvar webChatChannelData = new BotChannelData(AzureLocation.WestUS2)\n{\n    Properties = new WebChatChannel()\n    {\n        Properties = new WebChatChannelProperties()\n        {\n            Sites =\n            {\n                new WebChatSite(\"Default Site\")\n                {\n                    IsEnabled = true\n                }\n            }\n        }\n    }\n};\n\nawait channels.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    BotChannelName.WebChatChannel,\n    webChatChannelData);\n```\n\n### 5. Get Bot and List Channels\n\n```csharp\n// Get bot\nBotResource bot = await botCollection.GetAsync(\"myBotName\");\nConsole.WriteLine($\"Bot: {bot.Data.Properties.DisplayName}\");\nConsole.WriteLine($\"Endpoint: {bot.Data.Properties.Endpoint}\");\n\n// List channels\nawait foreach (BotChannelResource channel in bot.GetBotChannels().GetAllAsync())\n{\n    Console.WriteLine($\"Channel: {channel.Data.Name}\");\n}\n```\n\n### 6. Regenerate DirectLine Keys\n\n```csharp\nvar regenerateRequest = new BotChannelRegenerateKeysContent(BotChannelName.DirectLineChannel)\n{\n    SiteName = \"Default Site\"\n};\n\nBotChannelResource channelWithKeys = await bot.GetBotChannelWithRegenerateKeysAsync(regenerateRequest);\n```\n\n### 7. Update Bot\n\n```csharp\nBotResource bot = await botCollection.GetAsync(\"myBotName\");\n\n// Update using patch\nvar updateData = new BotData(bot.Data.Location)\n{\n    Properties = new BotProperties(\n        displayName: \"Updated Bot Name\",\n        endpoint: bot.Data.Properties.Endpoint,\n        msaAppId: bot.Data.Properties.MsaAppId)\n    {\n        Description = \"Updated description\"\n    }\n};\n\nawait bot.UpdateAsync(updateData);\n```\n\n### 8. Delete Bot\n\n```csharp\nBotResource bot = await botCollection.GetAsync(\"myBotName\");\nawait bot.DeleteAsync(WaitUntil.Completed);\n```\n\n## Supported Channel Types\n\n| Channel | Constant | Class |\n|---------|----------|-------|\n| Direct Line | `BotChannelName.DirectLineChannel` | `DirectLineChannel` |\n| Direct Line Speech | `BotChannelName.DirectLineSpeechChannel` | `DirectLineSpeechChannel` |\n| Microsoft Teams | `BotChannelName.MsTeamsChannel` | `MsTeamsChannel` |\n| Web Chat | `BotChannelName.WebChatChannel` | `WebChatChannel` |\n| Slack | `BotChannelName.SlackChannel` | `SlackChannel` |\n| Facebook | `BotChannelName.FacebookChannel` | `FacebookChannel` |\n| Email | `BotChannelName.EmailChannel` | `EmailChannel` |\n| Telegram | `BotChannelName.TelegramChannel` | `TelegramChannel` |\n| Telephony | `BotChannelName.TelephonyChannel` | `TelephonyChannel` |\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ArmClient` | Entry point for all ARM operations |\n| `BotResource` | Represents an Azure Bot resource |\n| `BotCollection` | Collection for bot CRUD |\n| `BotData` | Bot resource definition |\n| `BotProperties` | Bot configuration properties |\n| `BotChannelResource` | Channel configuration |\n| `BotChannelCollection` | Collection of channels |\n| `BotChannelData` | Channel configuration data |\n| `BotConnectionSettingResource` | OAuth connection settings |\n\n## BotServiceKind Values\n\n| Value | Description |\n|-------|-------------|\n| `BotServiceKind.Azurebot` | Azure Bot (recommended) |\n| `BotServiceKind.Bot` | Legacy Bot Framework bot |\n| `BotServiceKind.Designer` | Composer bot |\n| `BotServiceKind.Function` | Function bot |\n| `BotServiceKind.Sdk` | SDK bot |\n\n## BotServiceSkuName Values\n\n| Value | Description |\n|-------|-------------|\n| `BotServiceSkuName.F0` | Free tier |\n| `BotServiceSkuName.S1` | Standard tier |\n\n## BotMsaAppType Values\n\n| Value | Description |\n|-------|-------------|\n| `BotMsaAppType.MultiTenant` | Multi-tenant app |\n| `BotMsaAppType.SingleTenant` | Single-tenant app |\n| `BotMsaAppType.UserAssignedMSI` | User-assigned managed identity |\n\n## Best Practices\n\n1. **Always use `DefaultAzureCredential`** — supports multiple auth methods\n2. **Use `WaitUntil.Completed`** for synchronous operations\n3. **Handle `RequestFailedException`** for API errors\n4. **Use async methods** (`*Async`) for all operations\n5. **Store MSA App credentials securely** — use Key Vault for secrets\n6. **Use managed identity** (`BotMsaAppType.UserAssignedMSI`) for production bots\n7. **Enable secure sites** for DirectLine channels in production\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    var operation = await botCollection.CreateOrUpdateAsync(\n        WaitUntil.Completed, \n        botName, \n        botData);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Bot already exists\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.ResourceManager.BotService` | Bot management (this SDK) | `dotnet add package Azure.ResourceManager.BotService` |\n| `Microsoft.Bot.Builder` | Bot Framework SDK | `dotnet add package Microsoft.Bot.Builder` |\n| `Microsoft.Bot.Builder.Integration.AspNet.Core` | ASP.NET Core integration | `dotnet add package Microsoft.Bot.Builder.Integration.AspNet.Core` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https://www.nuget.org/packages/Azure.ResourceManager.BotService |\n| API Reference | https://learn.microsoft.com/dotnet/api/azure.resourcemanager.botservice |\n| GitHub Source | https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/botservice/Azure.ResourceManager.BotService |\n| Azure Bot Service Docs | https://learn.microsoft.com/azure/bot-service/ |\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","mgmt","botservice","dotnet","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents"],"capabilities":["skill","source-sickn33","skill-azure-mgmt-botservice-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-mgmt-botservice-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 (9,658 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:32.052Z","embedding":null,"createdAt":"2026-04-18T21:32:45.033Z","updatedAt":"2026-04-24T18:50:32.052Z","lastSeenAt":"2026-04-24T18:50:32.052Z","tsv":"'/api/messages':176 '/azure/azure-sdk-for-net/tree/main/sdk/botservice/azure.resourcemanager.botservice':692 '/azure/bot-service/':699 '/dotnet/api/azure.resourcemanager.botservice':687 '/packages/azure.resourcemanager.botservice':682 '1':143,556 '2':203,564 '3':267,570 '4':293,576 '409':630 '5':322,584 '6':354,595 '7':372,603 '8':406 'access':120 'action':712 'add':52,56,655,663,671 'alreadi':633 'alway':557 'api':574,683 'app':542,547,587 'applic':706 'arm':466,639 'armclient':100,101,103,128,461 'armclient.getdefaultsubscriptionasync':113 'armoper':189,256 'ask':750 'asp.net':667 'assign':551 'async':578,580 'auth':74,562 'authent':85,93 'await':112,116,191,213,258,288,317,333,344,369,378,403,412,415,620 'azur':2,6,22,41,46,68,76,79,82,180,471,507,616,693 'azure-mgmt-botservice-dotnet':1 'azure.identity':58,88 'azure.resourcemanager':90 'azure.resourcemanager.botservice':32,54,92,149,649,657 'azure.resourcemanager.botservice.models':151 'azurelocation.westus2':159,231,277,303 'bash':50,67 'best':554 'bot':11,23,42,121,145,153,181,188,197,200,210,212,324,330,332,337,374,377,394,408,411,472,477,480,484,508,512,514,517,520,523,602,632,650,659,694 'bot.data.location':388 'bot.data.name':202 'bot.data.properties.displayname':338 'bot.data.properties.endpoint':341,397 'bot.data.properties.msaappid':399 'bot.deleteasync':416 'bot.getbotchannels':222,349 'bot.getbotchannelwithregeneratekeysasync':370 'bot.updateasync':404 'botchannelcollect':220,490 'botchanneldata':230,276,302,494 'botchannelname.directlinechannel':261,363,426 'botchannelname.directlinespeechchannel':431 'botchannelname.emailchannel':448 'botchannelname.facebookchannel':445 'botchannelname.msteamschannel':291,435 'botchannelname.slackchannel':442 'botchannelname.telegramchannel':451 'botchannelname.telephonychannel':454 'botchannelname.webchatchannel':320,439 'botchannelregeneratekeyscont':362 'botchannelresourc':132,346,367,487 'botcollect':123,124,474 'botcollection.createorupdateasync':192,621 'botcollection.getasync':334,379,413 'botconnectionsettingresourc':137,498 'botdata':156,158,195,387,479,624 'botmsaapptyp':534 'botmsaapptype.multitenant':183,538 'botmsaapptype.singletenant':543 'botmsaapptype.userassignedmsi':548,599 'botnam':623 'botproperti':168,391,483 'botresourc':131,196,211,331,376,410,468 'botservic':4 'botservicekind':502 'botservicekind.azurebot':161,506 'botservicekind.bot':510 'botservicekind.designer':515 'botservicekind.function':518 'botservicekind.sdk':521 'botserviceprivateendpointconnectionresourc':140 'botservicesku':164 'botserviceskunam':524 'botserviceskuname.f0':165,528 'botserviceskuname.s1':531 'boundari':758 'catch':625,635 'channel':25,206,218,221,225,255,265,271,297,327,343,347,352,419,421,488,493,495,609 'channel.data.name':353 'channeldata':228,262 'channelop':257 'channels.createorupdateasync':259,289,318 'channelwithkey':368 'chat':296,438 'clarif':752 'class':423 'clear':725 'client':80,83 'collect':122,219,475,491 'compos':516 'configur':204,226,266,268,294,485,489,496 'connect':30,139,500 'console.writeline':199,263,336,339,351,631,638 'constant':422 'core':141,668 'creat':19,144,152,184,201,223,251 'credenti':97,104,588 'criteria':761 'crud':478 'csharp':86,147,207,272,298,328,358,375,409,614 'current':59 'data':154,497 'default':241,313,365 'defaultazurecredenti':95,99,559 'definit':482 'delet':407 'describ':713,729 'descript':178,400,402,505,527,537 'direct':424,428 'directlin':27,133,205,224,264,356,608 'directlinechannel':234,427 'directlinechannelproperti':237 'directlinesit':240 'directlinespeechchannel':432 'displaynam':169,392 'doc':696 'dotnet':5,51,55,654,662,670 'email':447 'emailchannel':449 'enabl':604 'enablecal':286 'endpoint':171,340,396 'entri':462 'environ':65,741 'environment-specif':740 'error':575,612,640 'etc':136 'ex':627,637 'ex.errorcode':642 'ex.message':643 'ex.status':629,641 'execut':708 'exist':634 'expert':746 'facebook':444 'facebookchannel':446 'fals':246,287 'foreach':345 'framework':513,660 'free':529 'function':519 'get':105,208,217,323,329 'getallasync':350 'getasync':118,215 'github':688 'github.com':691 'github.com/azure/azure-sdk-for-net/tree/main/sdk/botservice/azure.resourcemanager.botservice':690 'group':109 'handl':571,613 'hierarchi':127 'id':70,78,81 'ident':553,598 'input':755 'instal':49,648 'integr':669 'isen':243,284,315 'issecuresiteen':249 'isv1enabled':245 'isv3enabled':247 'key':357,456,591 'kind':160 'learn.microsoft.com':686,698 'learn.microsoft.com/azure/bot-service/':697 'learn.microsoft.com/dotnet/api/azure.resourcemanager.botservice':685 'legaci':511 'limit':717 'line':425,429 'link':675 'list':326,342 'manag':8,15,21,34,40,48,552,597,651 'match':726 'method':563,579 'mgmt':3 'microsoft':269,433 'microsoft.bot.builder':658,665 'microsoft.bot.builder.integration.aspnet.core':666,673 'miss':763 'msa':586 'msaappid':177,398 'msaapptyp':182 'msteamschannel':280,436 'msteamschannelproperti':283 'multi':540 'multi-ten':539 'multipl':561 'mybot':170 'mybot.azurewebsites.net':175 'mybot.azurewebsites.net/api/messages':174 'mybotnam':194,216,335,380,414 'myresourcegroup':119 'name':395 'net':14,33 'new':98,102,157,163,167,172,229,233,236,239,275,279,282,301,305,308,311,361,386,390 'nuget':678 'oauth':138,499 'oper':17,190,467,569,583,619 'operation.value':198 'option':75 'output':735 'overview':716 'packag':53,57,656,664,672,679 'patch':383 'permiss':756 'plane':16,35 'point':463 'practic':555 'preview':63 'princip':73 'product':601,611 'properti':166,232,235,278,281,304,307,389,486 'provis':38 'purpos':460,647 'recommend':509 'refer':458,674,684 'regener':355 'regeneraterequest':360,371 'relat':644 'repres':469 'requestfailedexcept':572,626,636 'requir':754 'resourc':7,24,44,47,108,126,146,473,481,676 'resourcegroup':115 'resourcegroup.getbots':125,214 'resourcegroupresourc':114,130 'review':747 'safeti':757 'scope':728 'sdk':9,36,522,646,653,661 'sdks':645 'secret':84,594 'secur':589,605 'servic':12,43,72,695 'set':31,501 'singl':545 'single-ten':544 'site':238,242,310,314,366,606 'sitenam':364 'skill':704,720 'skill-azure-mgmt-botservice-dotnet' 'sku':162 'slack':28,135,441 'slackchannel':443 'sourc':689 'source-sickn33' 'specif':742 'speech':430 'stabl':61 'standard':532 'stop':748 'store':585 'subscript':69,106,111 'subscription.getresourcegroups':117 'subscriptionresourc':110,129 'substitut':738 'success':760 'support':418,560 'synchron':568 'task':724 'team':26,134,270,434 'teamschanneldata':274,292 'telegram':450 'telegramchannel':452 'telephoni':453 'telephonychannel':455 'tenant':77,541,546 'test':744 'tier':530,533 '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':733 'tri':617 'true':244,248,250,285,316 'type':420,457,459 'updat':186,253,373,381,393,401 'updatedata':385,405 'uri':173 'url':677 'use':87,89,91,94,148,150,382,558,565,577,590,596,615,702,718 'user':550 'user-assign':549 'v1.1.0-beta.1':64 'v1.1.1':62 'valid':743 'valu':503,504,525,526,535,536 'var':96,155,227,273,299,359,384,618 'variabl':66 'vault':592 'version':60 'via':45 'waituntil.completed':193,260,290,319,417,566,622 'web':295,437 'webchatchannel':306,440 'webchatchanneldata':300,321 'webchatchannelproperti':309 'webchatsit':312 'workflow':142,710 'www.nuget.org':681 'www.nuget.org/packages/azure.resourcemanager.botservice':680","prices":[{"id":"c03ae3c8-01a0-4f57-9fe5-2d4b9d5f6e27","listingId":"437aa488-ed0a-439c-be67-921abdee610b","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:32:45.033Z"}],"sources":[{"listingId":"437aa488-ed0a-439c-be67-921abdee610b","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-mgmt-botservice-dotnet","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-mgmt-botservice-dotnet","isPrimary":false,"firstSeenAt":"2026-04-18T21:32:45.033Z","lastSeenAt":"2026-04-24T18:50:32.052Z"}],"details":{"listingId":"437aa488-ed0a-439c-be67-921abdee610b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-mgmt-botservice-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":"59bca800bf70f8bc35a15b230f2bee5068c47b7a","skill_md_path":"skills/azure-mgmt-botservice-dotnet/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-mgmt-botservice-dotnet"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-mgmt-botservice-dotnet","description":"Azure Resource Manager SDK for Bot Service in .NET. Management plane operations for creating and managing Azure Bot resources, channels (Teams, DirectLine, Slack), and connection settings."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-mgmt-botservice-dotnet"},"updatedAt":"2026-04-24T18:50:32.052Z"}}