[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CS4VHW8M4KN96WR3ZP4MXR":3,"skill-same:01M6CS4VHW8M4KN96WR3ZP4MXR":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":41,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6CS4VHW8M4KN96WR3ZP4MXR","azure-mgmt-apicenter-dotnet",null,"Azure API Center SDK for .NET. Centralized API inventory management with governance, versioning, and discovery.","Sam-06060\u002Fjarvis-assistant","Sam-06060","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F208600848?v=4","01M6CRKT7C7FXD21V6HXF293S0","Samson Frank Ganta","01M6CRKTBEKYFD8YX5Z1GT99EE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-mgmt-apicenter-dotnet\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"dotnet","azure","azure mgmt apicenter dotnet","sdk","governance","inventory","api","discovery","versioning","management","community","2026-11-10 10:12:30",false,"---\nname: azure-mgmt-apicenter-dotnet\ndescription: Azure API Center SDK for .NET. Centralized API inventory management with governance, versioning, and discovery.\nrisk: unknown\nsource: community\ndate_added: '2026-02-27'\n---\n\n# Azure.ResourceManager.ApiCenter (.NET)\n\nCentralized API inventory and governance SDK for managing APIs across your organization.\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.ApiCenter\ndotnet add package Azure.Identity\n```\n\n**Current Version**: v1.0.0 (GA)  \n**API Version**: 2024-03-01\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>\nAZURE_RESOURCE_GROUP=\u003Cyour-resource-group>\nAZURE_APICENTER_SERVICE_NAME=\u003Cyour-apicenter-service>\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.ApiCenter;\n\nArmClient client = new ArmClient(new DefaultAzureCredential());\n```\n\n## Resource Hierarchy\n\n```\nSubscription\n└── ResourceGroup\n    └── ApiCenterService                    # API inventory service\n        ├── Workspace                       # Logical grouping of APIs\n        │   ├── Api                         # API definition\n        │   │   └── ApiVersion              # Version of the API\n        │   │       └── ApiDefinition       # OpenAPI\u002FGraphQL\u002Fetc specification\n        │   ├── Environment                 # Deployment target (dev\u002Fstaging\u002Fprod)\n        │   └── Deployment                  # API deployed to environment\n        └── MetadataSchema                  # Custom metadata definitions\n```\n\n## Core Workflows\n\n### 1. Create API Center Service\n\n```csharp\nusing Azure.ResourceManager.ApiCenter;\nusing Azure.ResourceManager.ApiCenter.Models;\n\nResourceGroupResource resourceGroup = await client\n    .GetDefaultSubscriptionAsync()\n    .Result\n    .GetResourceGroupAsync(\"my-resource-group\");\n\nApiCenterServiceCollection services = resourceGroup.GetApiCenterServices();\n\nApiCenterServiceData data = new ApiCenterServiceData(AzureLocation.EastUS)\n{\n    Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.SystemAssigned)\n};\n\nArmOperation\u003CApiCenterServiceResource> operation = await services\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-api-center\", data);\n\nApiCenterServiceResource service = operation.Value;\n```\n\n### 2. Create Workspace\n\n```csharp\nApiCenterWorkspaceCollection workspaces = service.GetApiCenterWorkspaces();\n\nApiCenterWorkspaceData workspaceData = new ApiCenterWorkspaceData\n{\n    Title = \"Engineering APIs\",\n    Description = \"APIs owned by the engineering team\"\n};\n\nArmOperation\u003CApiCenterWorkspaceResource> operation = await workspaces\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"engineering\", workspaceData);\n\nApiCenterWorkspaceResource workspace = operation.Value;\n```\n\n### 3. Create API\n\n```csharp\nApiCenterApiCollection apis = workspace.GetApiCenterApis();\n\nApiCenterApiData apiData = new ApiCenterApiData\n{\n    Title = \"Orders API\",\n    Description = \"API for managing customer orders\",\n    Kind = ApiKind.Rest,\n    LifecycleStage = ApiLifecycleStage.Production,\n    TermsOfService = new ApiTermsOfService\n    {\n        Uri = new Uri(\"https:\u002F\u002Fexample.com\u002Fterms\")\n    },\n    ExternalDocumentation = \n    {\n        new ApiExternalDocumentation\n        {\n            Title = \"Documentation\",\n            Uri = new Uri(\"https:\u002F\u002Fdocs.example.com\u002Forders\")\n        }\n    },\n    Contacts =\n    {\n        new ApiContact\n        {\n            Name = \"API Support\",\n            Email = \"api-support@example.com\"\n        }\n    }\n};\n\n\u002F\u002F Add custom metadata\napiData.CustomProperties = BinaryData.FromObjectAsJson(new\n{\n    team = \"orders-team\",\n    costCenter = \"CC-1234\"\n});\n\nArmOperation\u003CApiCenterApiResource> operation = await apis\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"orders-api\", apiData);\n\nApiCenterApiResource api = operation.Value;\n```\n\n### 4. Create API Version\n\n```csharp\nApiCenterApiVersionCollection versions = api.GetApiCenterApiVersions();\n\nApiCenterApiVersionData versionData = new ApiCenterApiVersionData\n{\n    Title = \"v1.0.0\",\n    LifecycleStage = ApiLifecycleStage.Production\n};\n\nArmOperation\u003CApiCenterApiVersionResource> operation = await versions\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"v1-0-0\", versionData);\n\nApiCenterApiVersionResource version = operation.Value;\n```\n\n### 5. Create API Definition (Upload OpenAPI Spec)\n\n```csharp\nApiCenterApiDefinitionCollection definitions = version.GetApiCenterApiDefinitions();\n\nApiCenterApiDefinitionData definitionData = new ApiCenterApiDefinitionData\n{\n    Title = \"OpenAPI Specification\",\n    Description = \"Orders API OpenAPI 3.0 definition\"\n};\n\nArmOperation\u003CApiCenterApiDefinitionResource> operation = await definitions\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"openapi\", definitionData);\n\nApiCenterApiDefinitionResource definition = operation.Value;\n\n\u002F\u002F Import specification\nstring openApiSpec = await File.ReadAllTextAsync(\"orders-api.yaml\");\n\nApiSpecImportContent importContent = new ApiSpecImportContent\n{\n    Format = ApiSpecImportSourceFormat.Inline,\n    Value = openApiSpec,\n    Specification = new ApiSpecImportSpecification\n    {\n        Name = \"openapi\",\n        Version = \"3.0.1\"\n    }\n};\n\nawait definition.ImportSpecificationAsync(WaitUntil.Completed, importContent);\n```\n\n### 6. Export API Specification\n\n```csharp\nApiCenterApiDefinitionResource definition = await client\n    .GetApiCenterApiDefinitionResource(definitionResourceId)\n    .GetAsync();\n\nArmOperation\u003CApiSpecExportResult> operation = await definition\n    .ExportSpecificationAsync(WaitUntil.Completed);\n\nApiSpecExportResult result = operation.Value;\n\n\u002F\u002F result.Format - e.g., \"inline\"\n\u002F\u002F result.Value - the specification content\n```\n\n### 7. Create Environment\n\n```csharp\nApiCenterEnvironmentCollection environments = workspace.GetApiCenterEnvironments();\n\nApiCenterEnvironmentData envData = new ApiCenterEnvironmentData\n{\n    Title = \"Production\",\n    Description = \"Production environment\",\n    Kind = ApiCenterEnvironmentKind.Production,\n    Server = new ApiCenterEnvironmentServer\n    {\n        ManagementPortalUris = { new Uri(\"https:\u002F\u002Fportal.azure.com\") }\n    },\n    Onboarding = new EnvironmentOnboardingModel\n    {\n        Instructions = \"Contact platform team for access\",\n        DeveloperPortalUris = { new Uri(\"https:\u002F\u002Fdeveloper.example.com\") }\n    }\n};\n\nArmOperation\u003CApiCenterEnvironmentResource> operation = await environments\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"production\", envData);\n```\n\n### 8. Create Deployment\n\n```csharp\nApiCenterDeploymentCollection deployments = workspace.GetApiCenterDeployments();\n\n\u002F\u002F Get environment resource ID\nResourceIdentifier envResourceId = ApiCenterEnvironmentResource.CreateResourceIdentifier(\n    subscriptionId, resourceGroupName, serviceName, workspaceName, \"production\");\n\n\u002F\u002F Get API definition resource ID\nResourceIdentifier definitionResourceId = ApiCenterApiDefinitionResource.CreateResourceIdentifier(\n    subscriptionId, resourceGroupName, serviceName, workspaceName, \n    \"orders-api\", \"v1-0-0\", \"openapi\");\n\nApiCenterDeploymentData deploymentData = new ApiCenterDeploymentData\n{\n    Title = \"Orders API - Production\",\n    Description = \"Production deployment of Orders API v1.0.0\",\n    EnvironmentId = envResourceId,\n    DefinitionId = definitionResourceId,\n    State = ApiCenterDeploymentState.Active,\n    Server = new ApiCenterDeploymentServer\n    {\n        RuntimeUris = { new Uri(\"https:\u002F\u002Fapi.example.com\u002Forders\") }\n    }\n};\n\nArmOperation\u003CApiCenterDeploymentResource> operation = await deployments\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"orders-api-prod\", deploymentData);\n```\n\n### 9. Create Metadata Schema\n\n```csharp\nApiCenterMetadataSchemaCollection schemas = service.GetApiCenterMetadataSchemas();\n\nstring jsonSchema = \"\"\"\n{\n    \"type\": \"object\",\n    \"properties\": {\n        \"team\": {\n            \"type\": \"string\",\n            \"title\": \"Owning Team\"\n        },\n        \"costCenter\": {\n            \"type\": \"string\",\n            \"title\": \"Cost Center\"\n        },\n        \"dataClassification\": {\n            \"type\": \"string\",\n            \"enum\": [\"public\", \"internal\", \"confidential\"],\n            \"title\": \"Data Classification\"\n        }\n    },\n    \"required\": [\"team\"]\n}\n\"\"\";\n\nApiCenterMetadataSchemaData schemaData = new ApiCenterMetadataSchemaData\n{\n    Schema = jsonSchema,\n    AssignedTo =\n    {\n        new MetadataAssignment\n        {\n            Entity = MetadataAssignmentEntity.Api,\n            Required = true\n        }\n    }\n};\n\nArmOperation\u003CApiCenterMetadataSchemaResource> operation = await schemas\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"api-metadata\", schemaData);\n```\n\n### 10. List and Search APIs\n\n```csharp\n\u002F\u002F List all APIs in a workspace\nApiCenterWorkspaceResource workspace = await client\n    .GetApiCenterWorkspaceResource(workspaceResourceId)\n    .GetAsync();\n\nawait foreach (ApiCenterApiResource api in workspace.GetApiCenterApis())\n{\n    Console.WriteLine($\"API: {api.Data.Title}\");\n    Console.WriteLine($\"  Kind: {api.Data.Kind}\");\n    Console.WriteLine($\"  Stage: {api.Data.LifecycleStage}\");\n    \n    \u002F\u002F List versions\n    await foreach (ApiCenterApiVersionResource version in api.GetApiCenterApiVersions())\n    {\n        Console.WriteLine($\"  Version: {version.Data.Title}\");\n    }\n}\n\n\u002F\u002F List environments\nawait foreach (ApiCenterEnvironmentResource env in workspace.GetApiCenterEnvironments())\n{\n    Console.WriteLine($\"Environment: {env.Data.Title} ({env.Data.Kind})\");\n}\n\n\u002F\u002F List deployments\nawait foreach (ApiCenterDeploymentResource deployment in workspace.GetApiCenterDeployments())\n{\n    Console.WriteLine($\"Deployment: {deployment.Data.Title}\");\n    Console.WriteLine($\"  State: {deployment.Data.State}\");\n}\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ApiCenterServiceResource` | API Center service instance |\n| `ApiCenterWorkspaceResource` | Logical grouping of APIs |\n| `ApiCenterApiResource` | Individual API |\n| `ApiCenterApiVersionResource` | Version of an API |\n| `ApiCenterApiDefinitionResource` | API specification (OpenAPI, etc.) |\n| `ApiCenterEnvironmentResource` | Deployment environment |\n| `ApiCenterDeploymentResource` | API deployment to environment |\n| `ApiCenterMetadataSchemaResource` | Custom metadata schema |\n| `ApiKind` | rest, graphql, grpc, soap, webhook, websocket, mcp |\n| `ApiLifecycleStage` | design, development, testing, preview, production, deprecated, retired |\n| `ApiCenterEnvironmentKind` | development, testing, staging, production |\n| `ApiCenterDeploymentState` | active, inactive |\n\n## Best Practices\n\n1. **Organize with workspaces** — Group APIs by team, domain, or product\n2. **Use metadata schemas** — Define custom properties for governance\n3. **Track lifecycle stages** — Keep API status current (design → production → deprecated)\n4. **Document environments** — Include onboarding instructions and portal URIs\n5. **Version consistently** — Use semantic versioning for API versions\n6. **Import specifications** — Upload OpenAPI\u002FGraphQL specs for discovery\n7. **Link deployments** — Connect APIs to their runtime environments\n8. **Use managed identity** — Enable SystemAssigned identity for secure integrations\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    ArmOperation\u003CApiCenterApiResource> operation = await apis\n        .CreateOrUpdateAsync(WaitUntil.Completed, \"my-api\", apiData);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"API already exists with conflicting configuration\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Invalid request: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Azure error: {ex.Status} - {ex.Message}\");\n}\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.ResourceManager.ApiCenter` | API Center management (this SDK) | `dotnet add package Azure.ResourceManager.ApiCenter` |\n| `Azure.ResourceManager.ApiManagement` | API gateway and policies | `dotnet add package Azure.ResourceManager.ApiManagement` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.ResourceManager.ApiCenter |\n| API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.apicenter |\n| Product Documentation | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fapi-center\u002F |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fapicenter\u002FAzure.ResourceManager.ApiCenter |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure.ResourceManager.ApiCenter (.NET)\n\nCentralized API inventory and governance SDK for managing APIs across your organization.\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.ApiCenter\ndotnet add package Azure.Identity\n```\n\n**Current Version**: v1.0.0 (GA)  \n**API Version**: 2024-03-01\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>\nAZURE_RESOURCE_GROUP=\u003Cyour-resource-group>\nAZURE_APICENTER_SERVICE_NAME=\u003Cyour-apicenter-service>\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.ApiCenter;\n\nArmClient client = new ArmClient(new DefaultAzureCredential());\n```\n\n## Resource Hierarchy\n\n```\nSubscription\n└── ResourceGroup\n    └── ApiCenterService                    # API inventory service\n        ├── Workspace                       # Logical grouping of APIs\n        │   ├── Api                         # API definition\n        │   │   └── ApiVersion              # Version of the API\n        │   │       └── ApiDefinition       # OpenAPI\u002FGraphQL\u002Fetc specification\n        │   ├── Environment                 # Deployment target (dev\u002Fstaging\u002Fprod)\n        │   └── Deployment                  # API deployed to environment\n        └── MetadataSchema                  # Custom metadata definitions\n```\n\n## Core Workflows\n\n### 1. Create API Center Service\n\n```csharp\nusing Azure.ResourceManager.ApiCenter;\nusing Azure.ResourceManager.ApiCenter.Models;\n\nResourceGroupResource resourceGroup = await client\n    .GetDefaultSubscriptionAsync()\n    .Result\n    .GetResourceGroupAsync(\"my-resource-group\");\n\nApiCenterServiceCollection services = resourceGroup.GetApiCenterServices();\n\nApiCenterServiceData data = new ApiCenterServiceData(AzureLocation.EastUS)\n{\n    Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.SystemAssigned)\n};\n\nArmOperation\u003CApiCenterServiceResource> operation = await services\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-api-center\", data);\n\nApiCenterServiceResource service = operation.Value;\n```\n\n### 2. Create Workspace\n\n```csharp\nApiCenterWorkspaceCollection workspaces = service.GetApiCenterWorkspaces();\n\nApiCenterWorkspaceData workspaceData = new ApiCenterWorkspaceData\n{\n    Title = \"Engineering APIs\",\n    Description = \"APIs owned by the engineering team\"\n};\n\nArmOperation\u003CApiCenterWorkspaceResource> operation = await workspaces\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"engineering\", workspaceData);\n\nApiCenterWorkspaceResource workspace = operation.Value;\n```\n\n### 3. Create API\n\n```csharp\nApiCenterApiCollection apis = workspace.GetApiCenterApis();\n\nApiCenterApiData apiData = new ApiCenterApiData\n{\n    Title = \"Orders API\",\n    Description = \"API for managing customer orders\",\n    Kind = ApiKind.Rest,\n    LifecycleStage = ApiLifecycleStage.Production,\n    TermsOfService = new ApiTermsOfService\n    {\n        Uri = new Uri(\"https:\u002F\u002Fexample.com\u002Fterms\")\n    },\n    ExternalDocumentation = \n    {\n        new ApiExternalDocumentation\n        {\n            Title = \"Documentation\",\n            Uri = new Uri(\"https:\u002F\u002Fdocs.example.com\u002Forders\")\n        }\n    },\n    Contacts =\n    {\n        new ApiContact\n        {\n            Name = \"API Support\",\n            Email = \"api-support@example.com\"\n        }\n    }\n};\n\n\u002F\u002F Add custom metadata\napiData.CustomProperties = BinaryData.FromObjectAsJson(new\n{\n    team = \"orders-team\",\n    costCenter = \"CC-1234\"\n});\n\nArmOperation\u003CApiCenterApiResource> operation = await apis\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"orders-api\", apiData);\n\nApiCenterApiResource api = operation.Value;\n```\n\n### 4. Create API Version\n\n```csharp\nApiCenterApiVersionCollection versions = api.GetApiCenterApiVersions();\n\nApiCenterApiVersionData versionData = new ApiCenterApiVersionData\n{\n    Title = \"v1.0.0\",\n    LifecycleStage = ApiLifecycleStage.Production\n};\n\nArmOperation\u003CApiCenterApiVersionResource> operation = await versions\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"v1-0-0\", versionData);\n\nApiCenterApiVersionResource version = operation.Value;\n```\n\n### 5. Create API Definition (Upload OpenAPI Spec)\n\n```csharp\nApiCenterApiDefinitionCollection definitions = version.GetApiCenterApiDefinitions();\n\nApiCenterApiDefinitionData definitionData = new ApiCenterApiDefinitionData\n{\n    Title = \"OpenAPI Specification\",\n    Description = \"Orders API OpenAPI 3.0 definition\"\n};\n\nArmOperation\u003CApiCenterApiDefinitionResource> operation = await definitions\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"openapi\", definitionData);\n\nApiCenterApiDefinitionResource definition = operation.Value;\n\n\u002F\u002F Import specification\nstring openApiSpec = await File.ReadAllTextAsync(\"orders-api.yaml\");\n\nApiSpecImportContent importContent = new ApiSpecImportContent\n{\n    Format = ApiSpecImportSourceFormat.Inline,\n    Value = openApiSpec,\n    Specification = new ApiSpecImportSpecification\n    {\n        Name = \"openapi\",\n        Version = \"3.0.1\"\n    }\n};\n\nawait definition.ImportSpecificationAsync(WaitUntil.Completed, importContent);\n```\n\n### 6. Export API Specification\n\n```csharp\nApiCenterApiDefinitionResource definition = await client\n    .GetApiCenterApiDefinitionResource(definitionResourceId)\n    .GetAsync();\n\nArmOperation\u003CApiSpecExportResult> operation = await definition\n    .ExportSpecificationAsync(WaitUntil.Completed);\n\nApiSpecExportResult result = operation.Value;\n\n\u002F\u002F result.Format - e.g., \"inline\"\n\u002F\u002F result.Value - the specification content\n```\n\n### 7. Create Environment\n\n```csharp\nApiCenterEnvironmentCollection environments = workspace.GetApiCenterEnvironments();\n\nApiCenterEnvironmentData envData = new ApiCenterEnvironmentData\n{\n    Title = \"Production\",\n    Description = \"Production environment\",\n    Kind = ApiCenterEnvironmentKind.Production,\n    Server = new ApiCenterEnvironmentServer\n    {\n        ManagementPortalUris = { new Uri(\"https:\u002F\u002Fportal.azure.com\") }\n    },\n    Onboarding = new EnvironmentOnboardingModel\n    {\n        Instructions = \"Contact platform team for access\",\n        DeveloperPortalUris = { new Uri(\"https:\u002F\u002Fdeveloper.example.com\") }\n    }\n};\n\nArmOperation\u003CApiCenterEnvironmentResource> operation = await environments\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"production\", envData);\n```\n\n### 8. Create Deployment\n\n```csharp\nApiCenterDeploymentCollection deployments = workspace.GetApiCenterDeployments();\n\n\u002F\u002F Get environment resource ID\nResourceIdentifier envResourceId = ApiCenterEnvironmentResource.CreateResourceIdentifier(\n    subscriptionId, resourceGroupName, serviceName, workspaceName, \"production\");\n\n\u002F\u002F Get API definition resource ID\nResourceIdentifier definitionResourceId = ApiCenterApiDefinitionResource.CreateResourceIdentifier(\n    subscriptionId, resourceGroupName, serviceName, workspaceName, \n    \"orders-api\", \"v1-0-0\", \"openapi\");\n\nApiCenterDeploymentData deploymentData = new ApiCenterDeploymentData\n{\n    Title = \"Orders API - Production\",\n    Description = \"Production deployment of Orders API v1.0.0\",\n    EnvironmentId = envResourceId,\n    DefinitionId = definitionResourceId,\n    State = ApiCenterDeploymentState.Active,\n    Server = new ApiCenterDeploymentServer\n    {\n        RuntimeUris = { new Uri(\"https:\u002F\u002Fapi.example.com\u002Forders\") }\n    }\n};\n\nArmOperation\u003CApiCenterDeploymentResource> operation = await deployments\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"orders-api-prod\", deploymentData);\n```\n\n### 9. Create Metadata Schema\n\n```csharp\nApiCenterMetadataSchemaCollection schemas = service.GetApiCenterMetadataSchemas();\n\nstring jsonSchema = \"\"\"\n{\n    \"type\": \"object\",\n    \"properties\": {\n        \"team\": {\n            \"type\": \"string\",\n            \"title\": \"Owning Team\"\n        },\n        \"costCenter\": {\n            \"type\": \"string\",\n            \"title\": \"Cost Center\"\n        },\n        \"dataClassification\": {\n            \"type\": \"string\",\n            \"enum\": [\"public\", \"internal\", \"confidential\"],\n            \"title\": \"Data Classification\"\n        }\n    },\n    \"required\": [\"team\"]\n}\n\"\"\";\n\nApiCenterMetadataSchemaData schemaData = new ApiCenterMetadataSchemaData\n{\n    Schema = jsonSchema,\n    AssignedTo =\n    {\n        new MetadataAssignment\n        {\n            Entity = MetadataAssignmentEntity.Api,\n            Required = true\n        }\n    }\n};\n\nArmOperation\u003CApiCenterMetadataSchemaResource> operation = await schemas\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"api-metadata\", schemaData);\n```\n\n### 10. List and Search APIs\n\n```csharp\n\u002F\u002F List all APIs in a workspace\nApiCenterWorkspaceResource workspace = await client\n    .GetApiCenterWorkspaceResource(workspaceResourceId)\n    .GetAsync();\n\nawait foreach (ApiCenterApiResource api in workspace.GetApiCenterApis())\n{\n    Console.WriteLine($\"API: {api.Data.Title}\");\n    Console.WriteLine($\"  Kind: {api.Data.Kind}\");\n    Console.WriteLine($\"  Stage: {api.Data.LifecycleStage}\");\n    \n    \u002F\u002F List versions\n    await foreach (ApiCenterApiVersionResource version in api.GetApiCenterApiVersions())\n    {\n        Console.WriteLine($\"  Version: {version.Data.Title}\");\n    }\n}\n\n\u002F\u002F List environments\nawait foreach (ApiCenterEnvironmentResource env in workspace.GetApiCenterEnvironments())\n{\n    Console.WriteLine($\"Environment: {env.Data.Title} ({env.Data.Kind})\");\n}\n\n\u002F\u002F List deployments\nawait foreach (ApiCenterDeploymentResource deployment in workspace.GetApiCenterDeployments())\n{\n    Console.WriteLine($\"Deployment: {deployment.Data.Title}\");\n    Console.WriteLine($\"  State: {deployment.Data.State}\");\n}\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ApiCenterServiceResource` | API Center service instance |\n| `ApiCenterWorkspaceResource` | Logical grouping of APIs |\n| `ApiCenterApiResource` | Individual API |\n| `ApiCenterApiVersionResource` | Version of an API |\n| `ApiCenterApiDefinitionResource` | API specification (OpenAPI, etc.) |\n| `ApiCenterEnvironmentResource` | Deployment environment |\n| `ApiCenterDeploymentResource` | API deployment to environment |\n| `ApiCenterMetadataSchemaResource` | Custom metadata schema |\n| `ApiKind` | rest, graphql, grpc, soap, webhook, websocket, mcp |\n| `ApiLifecycleStage` | design, development, testing, preview, production, deprecated, retired |\n| `ApiCenterEnvironmentKind` | development, testing, staging, production |\n| `ApiCenterDeploymentState` | active, inactive |\n\n## Best Practices\n\n1. **Organize with workspaces** — Group APIs by team, domain, or product\n2. **Use metadata schemas** — Define custom properties for governance\n3. **Track lifecycle stages** — Keep API status current (design → production → deprecated)\n4. **Document environments** — Include onboarding instructions and portal URIs\n5. **Version consistently** — Use semantic versioning for API versions\n6. **Import specifications** — Upload OpenAPI\u002FGraphQL specs for discovery\n7. **Link deployments** — Connect APIs to their runtime environments\n8. **Use managed identity** — Enable SystemAssigned identity for secure integrations\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    ArmOperation\u003CApiCenterApiResource> operation = await apis\n        .CreateOrUpdateAsync(WaitUntil.Completed, \"my-api\", apiData);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"API already exists with conflicting configuration\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Invalid request: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Azure error: {ex.Status} - {ex.Message}\");\n}\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.ResourceManager.ApiCenter` | API Center management (this SDK) | `dotnet add package Azure.ResourceManager.ApiCenter` |\n| `Azure.ResourceManager.ApiManagement` | API gateway and policies | `dotnet add package Azure.ResourceManager.ApiManagement` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.ResourceManager.ApiCenter |\n| API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.apicenter |\n| Product Documentation | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fapi-center\u002F |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fapicenter\u002FAzure.ResourceManager.ApiCenter |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":35,"source":29,"date_added":36,"description":7},"unknown","2026-02-27","main","a50a3aa6b39fb0e1b7db88bef1bfc9c93606e126","modules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-mgmt-apicenter-dotnet",0,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant","https:\u002F\u002Fgithub.com\u002FSam-06060","Mobile Application Developer | Kotlin | Flutter, KMP, Swfit, Android,Swift UI | Building at Saar It Resources | Creator of Jarvis (AI Assistant)","2026-06-23 05:13:38",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add Sam-06060\u002Fjarvis-assistant --skill azure-mgmt-apicenter-dotnet",{"tool":51,"command":52},"bunx","bunx skills add Sam-06060\u002Fjarvis-assistant --skill azure-mgmt-apicenter-dotnet",{"tool":54,"command":55},"pnpm","pnpm dlx skills add Sam-06060\u002Fjarvis-assistant --skill azure-mgmt-apicenter-dotnet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-mgmt-apicenter-dotnet\u002FSKILL.md",true,[],[60,73,89,115,134,161],{"skillNo":61,"name":62,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":70,"publishedAt":30},"01M6GDRVS6FXX3ESH0C9DW01C0","test_skill","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fscratch\u002Ftest_skill\u002FSKILL.md",[65],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[71,72],"Test Skill","test",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":30},"01M6GDRQ40HX22MA6XWC31RHHK","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzustand-store-ts\u002FSKILL.md",[],[80,81,82,83,84,85,86,29,87,88],"zustand store ts","zustand","store","with","types","middleware","patterns","create","typescript",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":98,"publishedAt":30},"01M6GDRKEA0WE670SPFWX5GKCN","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoom-automation\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000023","Skill与智能体开发",[99,100,101,102,103,104,105,106,107,108,109,110,111,112,29,113,28,114],"automation","zoom automation","zoom","first","Tools","search","MCP","via","meeting","automate","critical","creation","webinars","composio","recordings","tracking",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":122,"publishedAt":30},"01M6GDRFS1452PC71JQ38S24HR","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoho-crm-automation\u002FSKILL.md",[121],{"categoryNo":96,"categoryName":97,"taxonomyType":68,"taxonomyTypeDesc":69},[123,99,124,125,126,127,128,29,104,129,112,130,109,108,103,131,87,132,105,133],"crm automation","zoho crm","crm","zoho crm automation","zoho","leads","contacts","records","update","tasks","manage",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":143,"publishedAt":30},"01M6GDRCKQBAVTGHX5XBH26KPZ","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzod-validation-expert\u002FSKILL.md",[140],{"categoryNo":141,"categoryName":142,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000009","前端开发",[144,145,146,147,148,88,149,150,151,152,153,154,83,155,156,157,158,29,159,160],"expert","zod","zod validation expert","validation","react","safe","parsing","errors","schema validation","react hook form","hook","trpc","form","type","next","schema","Next.js",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":168,"publishedAt":30},"01M6GDR658B08K4MY0RWD4A6EH","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzeroize-audit\u002FSKILL.md",[167],{"categoryNo":96,"categoryName":97,"taxonomyType":68,"taxonomyTypeDesc":69},[169,170,171,172,173,174,175,176,29,177,178,179,180,181,182,183,184,185,186,105],"zeroize audit","audit","write","passwords","get","project","c++","activate","assembly","read","Bash","secrets","analysis","data","flow","verification","code","rust"]